Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. Persian
  4. کامپایل‌های اتمی کیوت
Forum Updated to NodeBB v4.3 + New Features

کامپایل‌های اتمی کیوت

Scheduled Pinned Locked Moved Persian
25 Posts 3 Posters 13.8k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • H Offline
    H Offline
    hamedaz
    wrote on last edited by
    #3

    p{direction:rtl;text-align:right}. خسته نباشی

    1 Reply Last reply
    0
    • M Offline
      M Offline
      mohsen
      wrote on last edited by
      #4

      p{direction:rtl;text-align:right}. چرا میخوای کار خودت رو سخت کنی؟ همین که زحمت کشیدی و اینهارو کامپایل کردی برای توزیع کافیه. در مورد اسم فایل ها فکر نکنم LGPL اجازه بده که تغییرشون بدی. ولی میتونی دایرکتوری های مختلف برای هر build بسازی و به برنامه نویس ها فایل qtconfig.ini ارائه بدی که بذارن کنار برنامه شون. در کل ارزش کار به installer هست. من هر موقع وقت خالی پیدا کنم توی ساختش کمک میکنم. همچنین برای build ها رو من میتونی حساب کنی. فقط ریفرنس ها و فرمان کانفیگمون باید با هم سینک باشه.

      1 Reply Last reply
      0
      • S Offline
        S Offline
        soroush
        wrote on last edited by
        #5

        [quote author="Mohsen" date="1356956936"]p{direction:rtl;text-align:right}. چرا میخوای کار خودت رو سخت کنی؟ همین که زحمت کشیدی و اینهارو کامپایل کردی برای توزیع کافیه. در مورد اسم فایل ها فکر نکنم LGPL اجازه بده که تغییرشون بدی. ولی میتونی دایرکتوری های مختلف برای هر build بسازی و به برنامه نویس ها فایل qtconfig.ini ارائه بدی که بذارن کنار برنامه شون. در کل ارزش کار به installer هست. من هر موقع وقت خالی پیدا کنم توی ساختش کمک میکنم. همچنین برای build ها رو من میتونی حساب کنی. فقط ریفرنس ها و فرمان کانفیگمون باید با هم سینک باشه.[/quote]

        p{direction:rtl;text-align:right}. محسن دهنم سرویس شد تا اینو کامپایلش کنم! حدود سی تا پچ اعمال کردم برای وب‌کیت تا تونست کامپایل بشه. در مورد پرل و رابی و پایتون و مسیرهای ویندوز هم خیلی خیلی مشکلات زیاد بود! یه باگ مزخرف هم پیدا کردم این وسط. سه تا باگ هم قبلش شناسایی شده بود توسط دیگران که هرکدوم دردسر خودشو داره. بعد کتابخانه‌های پایه هر کدوم ادابازی خاص خودشونو داشتن. الان دارم اینستالر رو درست می‌کنم. اما چون پاسکال بلد نیستم نمی‌تونم گزینه‌هایی اضافه کنم که موقع نصب کاربر انتخاب کنه که کدوم ماژول‌ها نصب بشه. (از Inno Setup استفاده می‌کنم)

        1 Reply Last reply
        0
        • M Offline
          M Offline
          mohsen
          wrote on last edited by
          #6

          p{direction:rtl;text-align:right}. اشکالی نداره در عوض کلی تجربه بدست آوردی. گزینه نصب نمیخواد. همون حالت installer ساده بساز که فقط نصب کنه.
          یه ایده ای برای آیندش از ministro در necessitas گرفتم که اگه پیاده بشه خوبه.
          اینکه یه آبجکت به برنامه نویس بدی که یک manifest تنظیم کنه برای پروژه و همراه برنامه کامپایل بشه. بعد برنامه که میخواد اجرا بشه تو چک کنی ببینی که لایببری اون ورژن روی سیستم موجود هست یا نه. اگر نبود دانلود بشه.
          در آینده فکر کنم بدرد بخور بشه.

          1 Reply Last reply
          0
          • S Offline
            S Offline
            soroush
            wrote on last edited by
            #7

            [quote author="Mohsen" date="1356973261"]p{direction:rtl;text-align:right}. اشکالی نداره در عوض کلی تجربه بدست آوردی. گزینه نصب نمیخواد. همون حالت installer ساده بساز که فقط نصب کنه.
            در آینده فکر کنم بدرد بخور بشه.[/quote]

            p{direction:rtl;text-align:right}. حجم تمام باینری‌ها خیلی خیلی زیاده! شاید بهتر باشه این امکان رو به کاربر بدیم که خودش انتخاب کنه دقیقاً کدوم کتابخونه‌ها رو می‌خواد. یه مقدار هم واسه خودم می‌خوام. چون وقتی برنامه‌ای رو می‌خوام تحویل بدم خودم دوست دارم کیوت روی سیستم موقع نصب بریزم. واسهٔ همهٔ کامپیوترهای یه سازمان هم نیازی نیست مثلاً OpenGL و QtQuick و مخصولاً QtWebkit نصب بشه. یک بیستم این سایز برای اجرای برنامه‌ها کافی خواهد بود. چند تا گزینه می‌ذارم که به‌شکل دسته‌ای گزینه‌های دیگه رو انتخاب می‌کنه. مثلاً سه نوع نصب (مثل ویژوال استودیو) الان وارد فاز دوم کامپایل شدم. با ویژوال استودیو ۲۰۱۲ و کتابخانهٔ ANGLE به همین شکل می‌خوام کامپایل کنم. اما نمی‌دونم سویچ‌های بهینه‌سازی MSVC چطوری‌ان.

            [quote author="Mohsen" date="1356973261"]p{direction:rtl;text-align:right}. یه ایده ای برای آیندش از ministro در necessitas گرفتم که اگه پیاده بشه خوبه.
            اینکه یه آبجکت به برنامه نویس بدی که یک manifest تنظیم کنه برای پروژه و همراه برنامه کامپایل بشه. بعد برنامه که میخواد اجرا بشه تو چک کنی ببینی که لایببری اون ورژن روی سیستم موجود هست یا نه. اگر نبود دانلود بشه.
            در آینده فکر کنم بدرد بخور بشه.[/quote]

            p{direction:rtl;text-align:right}. چطور؟ یه چیزی مثل build key ؟ الان مگه نیست؟

            1 Reply Last reply
            0
            • M Offline
              M Offline
              mohsen
              wrote on last edited by
              #8

              p{direction:rtl;text-align:right}. فکر کنم چیزی که تو ذهن منه با کاری که تو داری انجام میدی متفاوته. انگار من اشتباه برداشت کردم از برنامت.
              چیزی که من فکر میکردم این بود که تو میخوای یه redistributable package درست کنی و این پکیج popular بشه و برنامه نویس ها برنامشون رو مطابق اون deploy کنن و اگر رو یه سیستم نصب بود، دیگه نیازی به دانلود مجدد اونا نباشه. خوب مسلما برای اینکار نیاز هست که تمام باینری ها نصب بشن. اون ایده ای هم که گفتم بر اساس این نظریه بود. (البته برای سیستم 32 بیتی باینری های 64 بیت لازم نیست. به عبارتی پکیج در 2 نسخه 32 و 64 برای هر سیستم عامل ارائه میشه)
              منظورم build key نیست. این یه کنترلیه که توسط برنامه تو که رو سیستم نصب شده انجام میشه. فقط یه آبجکت رو سورس attach میشه که برنامه کنترل کننده تو رو صدا میکنه و اطلاعات مانیفست رو بهش پاس میده. کنترل کننده مانیفست رو بررسی میکنه میبینه که مثلا لایببرری های 5.1 نیاز هست. میگه اینا رو سیستم نصب نیست میخواهید دانلود بشه؟ کاربر میگه بله یا خیر. یا اینکه میبینه لایبرری های 5 نیازه، مسیر لایبرری های مورد نیاز رو میده و پروژه لاببرری هارو از اونجا میخونه.
              @
              QApplication::setLibraryPaths();
              @
              یا
              qtconfig.ini

              1 Reply Last reply
              0
              • S Offline
                S Offline
                soroush
                wrote on last edited by
                #9

                p{direction:rtl;text-align:right}. خوب چه کاری‌یه آخه؟ چرا باید همچین چیزی وجود داشته باشه؟

                1 Reply Last reply
                0
                • M Offline
                  M Offline
                  mohsen
                  wrote on last edited by
                  #10

                  p{direction:rtl;text-align:right}. برای اینکه نیازی نباشه هر برنامه ای با خودش 20mb اضافه حمل کنه. با اینکه portable بودن کیوت خودش یک مزیته ولی برنامه های کوچیک کمی با حجم فایل ها مشکل دارن. وگرنه خوب همونطور که برنامه رو تولید کرده، همون فایل هارو هم کنار برنامه میفرسته دیگه! کاری که الان انجام میشه.
                  از طرفی برنامه های بزرگتر این rp رو با خودشون به کامپیوتر ها میبرن.

                  1 Reply Last reply
                  0
                  • S Offline
                    S Offline
                    soroush
                    wrote on last edited by
                    #11

                    [quote author="Mohsen" date="1356982980"]p{direction:rtl;text-align:right}. برای اینکه نیازی نباشه هر برنامه ای با خودش 20mb اضافه حمل کنه. با اینکه portable بودن کیوت خودش یک مزیته ولی برنامه های کوچیک کمی با حجم فایل ها مشکل دارن. وگرنه خوب همونطور که برنامه رو تولید کرده، همون فایل هارو هم کنار برنامه میفرسته دیگه! کاری که الان انجام میشه.
                    از طرفی برنامه های بزرگتر این rp رو با خودشون به کامپیوتر ها میبرن.[/quote]

                    p{direction:rtl;text-align:right}. آقاجان خوب اصلا DLL فلسفه‌ش همین بوده دیگه. اون واسط اضافی که برای مانیفست رو بررسی می‌کنه رو نفهمیدم. چه نیازی هست به اون؟. چرا لینک مستفیم نکنن برنامه‌ها؟

                    1 Reply Last reply
                    0
                    • M Offline
                      M Offline
                      mohsen
                      wrote on last edited by
                      #12

                      p{direction:rtl;text-align:right}. ببین فرض کن که تو یه برنامه میذاری واسه دانلود که فقط یه exe هست.
                      من میام دانلودش میکنم اجراش میکنم. یه پیغام میاد که این برنامه به rp نیاز داره از لینک زیر دانلودش کنید. من میرم اونو دانلود میکنم نصب میکنم برنامه کار میکنه.
                      فردا یه برنامه دیگه دانلود میکنم. اجراش میکنم. حالا دیگه rp نصبه ولی اون ورژن از dll هایی که این برنامه باهاش کامپایل شده رو نداره (اینا تو مانیفست مشخص شده: ورژن dll ها، dll هایی که استفاده شده + مشخصات اضافی.. کامپایلر و اینا)
                      پیغام میاد که این برنامه به چند فایل اضافی نیاز داره. دانلود بشه؟ میگم yes. فقط core و gui دانلود میشه.
                      دوباره فرداش یه برنامه دیگه میگیرم که webkit توش استفاده شده. پیغام میاد این برنامه به فایل اضافی نیاز داره دانلود شه؟ میگم yes. وبکیت دانلود میشه در کنار core و gui قرار میگیره و پکیج کاملتر میشه. تو بعضی موارد حتی برنامه واسط هم update میشه اگه نسخه جدیدترش باشه. (مثلا میخوایم سرور دانلود رو عوض کنیم)

                      1 Reply Last reply
                      0
                      • S Offline
                        S Offline
                        soroush
                        wrote on last edited by
                        #13

                        p{direction:rtl;text-align:right}. کار جالبی نیست :/

                        1 Reply Last reply
                        0
                        • M Offline
                          M Offline
                          mohsen
                          wrote on last edited by
                          #14

                          p{direction:rtl;text-align:right}. اینو در نظر داشته باش که کیوت 2-3 ماه یکبار revision میده.

                          1 Reply Last reply
                          0
                          • S Offline
                            S Offline
                            soroush
                            wrote on last edited by
                            #15

                            p{direction:rtl;text-align:right}. مهم نیست. اصلا معماری مناسبی نیست که بخوای بین یک لینک‌شده و لینک‌شونده واسط قرار بدی. خیلی مشکلات جدی داره.

                            1 Reply Last reply
                            0
                            • M Offline
                              M Offline
                              mohsen
                              wrote on last edited by
                              #16

                              p{direction:rtl;text-align:right}. واسط چی؟ اون فقط یه downloader هست.

                              1 Reply Last reply
                              0
                              • S Offline
                                S Offline
                                soroush
                                wrote on last edited by
                                #17

                                نمی‌تونی پیاده‌سازی کنی. برنامه چطور می‌خواد چک کنه فلان فایل هست یا نه؟ قبل از لینک زمان لینک!!؟

                                1 Reply Last reply
                                0
                                • M Offline
                                  M Offline
                                  mohsen
                                  wrote on last edited by
                                  #18

                                  p{direction:rtl;text-align:right}. نه! اشتباه متوجه شدی. ببین برنامه واسط اون گوشه هست. تو به برنامه نویس یه lib یا یه snippet میدی که تو برنامش میچسبونه. برنامش رو مثل همیشه کامپایل میکنه. وقتی که برنامه اجرا میشه اون کدی که تو بهش دادی اول از همه اجرا میشه و با برنامه واسط تو ارتباط برقرار میکنه. متوجه شدی؟ این یه مدل هست که خیلی جاها پیاده سازی شده. اگه با necessitas کار کرده باشی متوجه میشی که چی میگم.

                                  1 Reply Last reply
                                  0
                                  • S Offline
                                    S Offline
                                    soroush
                                    wrote on last edited by
                                    #19

                                    [quote author="Mohsen" date="1357036399"] وقتی که برنامه اجرا میشه اون کدی که تو بهش دادی اول از همه اجرا میشه[/quote]

                                    p{direction:rtl;text-align:right}. نمی‌تونه. چون زمان لینک مشخص کردی که به باینری‌های کیوت و چیزای دیگه لینک کنه. قبل از اجرای هر کدی تمام پیش‌نیازها توسط لودر سیستم‌عامل بارگذاری میشه. اگر موفق بود تازه شروع می‌کنه به اجرای کد برنامه. در غیر این حالت باید کتابونه‌ها لود و آنلود بشن. که در حالت کلی اصلاً ایدهٔ خوبی نیست.

                                    1 Reply Last reply
                                    0
                                    • M Offline
                                      M Offline
                                      mohsen
                                      wrote on last edited by
                                      #20

                                      p{direction:rtl;text-align:right}. starter چطوره؟ برای برنامه اصلی environment ست کنه و اونو اجرا کنه؟

                                      1 Reply Last reply
                                      0
                                      • S Offline
                                        S Offline
                                        soroush
                                        wrote on last edited by
                                        #21

                                        [quote author="Mohsen" date="1357054965"]p{direction:rtl;text-align:right}. starter چطوره؟ برای برنامه اصلی environment ست کنه و اونو اجرا کنه؟[/quote]

                                        p{direction:rtl;text-align:right}. این منطقی تره. میشه یه فایل bat نوشت که این کار رو انجام بده. اما آیا باز هم نیازی هست؟ من نیازی نمیبینم مگر در صورتی که نسخه های متعدد از کیوت روی یک ماشین بخواد نصب بشه و یا با معماری های متعدد بخواد استفاده بشه

                                        1 Reply Last reply
                                        0
                                        • M Offline
                                          M Offline
                                          mohsen
                                          wrote on last edited by
                                          #22

                                          p{direction:rtl;text-align:right}. چیزی که من بهش فکر میکنم اینه که کیوت مثل ویژوال استودیو نیست که 2 سال 1 بار یا مثلا سالی 1 بار بخواد یه sp بده. کیوت همیشه در حال توسعه هست. حالا برنامه ها همشون باید صبر کنن تا یه rp جدید بیاد؟ و کاربر اونو نصب کنه؟

                                          1 Reply Last reply
                                          0

                                          • Login

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • Users
                                          • Groups
                                          • Search
                                          • Get Qt Extensions
                                          • Unsolved