ورود

View Full Version : سوال: آیا برنامه های نوشته شده با Qt روی سیستم عامل ها و ماشین های مختلف اجرا می شوند؟



mehmir
یک شنبه 15 دی 1392, 09:42 صبح
سلام دوستان

آیا برنامه های نوشته شده با Qt روی سیستم عامل ها و ماشین های مختلف اجرا می شوند؟
یعنی نیازی به نصب پیش نیازها دارند یا نه؟ اگه دارند چه پیش نیازهایی و در چه حد؟
من میخوام برنامه ای بنویسیم که روی ماشین های مختلف (بدون نصب هیچ پیش نیازی) اجرا شه (فرض کنید همه سیستم عامل ویندوز دارند) آیا Qt راه حل کارمه؟
آیا کسی پیشنهاده دیگه ای داره؟

با تشکر فراوان

کامبیز اسدزاده
یک شنبه 15 دی 1392, 10:47 صبح
سلام دوستان

آیا برنامه های نوشته شده با Qt روی سیستم عامل ها و ماشین های مختلف اجرا می شوند؟
یعنی نیازی به نصب پیش نیازها دارند یا نه؟ اگه دارند چه پیش نیازهایی و در چه حد؟
من میخوام برنامه ای بنویسیم که روی ماشین های مختلف (بدون نصب هیچ پیش نیازی) اجرا شه (فرض کنید همه سیستم عامل ویندوز دارند) آیا Qt راه حل کارمه؟
آیا کسی پیشنهاده دیگه ای داره؟

با تشکر فراوان

خب این بستگی داره هدف شما چه چیزی باشه که توضیح خواهم داد.
کلا به جز زبان C++ تمامی زبان ها یجورایی نیاز به نصب پیش نیاز دارند زیرا تمامی آنها تحت چهارچوب مختص خودشون اجرا می شوند.

حال در رابطه با توانایی های Qt اینطور میتونم توضیح بدم که یک نوع Framework خاصی برای C++ هست ولی فرق زیادی با چهارچوب های دات نتی و دیگر چهار چوب ها دارد , زیرا شما وقتی برنامه ای رو تحت Qt مینویسید می تونید برنامتون رو روی هر سیستم عاملی کامپایل کنید مثلا ویندوز / لینوکس و مک... و هیچگونه وابستگی به سیستم عامل نخواهد داشت یعنی مثل ویندوز و زبان های دات نتی نیست که برای اجرای برنامه نیاز به فریم ورکی داشته باشد که با سیستم عامل ارتباط برقرار نماید زیرا C++ مستقیما با سخت افزار در ارتباط میباشد.

در رابطه با پیش نیاز ها اگر مسلما اگر از دیتابیس و همچین چیزایی استفاده میکنید باید نسخه مربوط به سیستم عامل مورد نظر خود را نصب نمایید.

ولی در رابطه با اینکه بر روی هر سخت افزار و سیستم عاملی بتونید برنامه بنویسید بله خواهید توانست به شرطی که به صورت استاندارد و خالی از API های خاص سیستم عاملی استفاده کنید.

mehmir
یک شنبه 15 دی 1392, 12:25 عصر
ولی در رابطه با اینکه بر روی هر سخت افزار و سیستم عاملی بتونید برنامه بنویسید بله خواهید توانست به شرطی که به صورت استاندارد و خالی از API های خاص سیستم عاملی استفاده کنید.

با Qt میشه setup ساخت؟ چجوری باید برنامه خروجی رو بگیرم ازش؟
با تشکر

کامبیز اسدزاده
یک شنبه 15 دی 1392, 12:34 عصر
با Qt میشه setup ساخت؟ چجوری باید برنامه خروجی رو بگیرم ازش؟
با تشکر

کلا قضیه Setup میتونه هم پیچیده بشه هم راحت...در ویندوز شما میتونید با استفاده از Install سازهای حرفه راحت این کار رو انجام بدین ولی در لینوکس و مک قضیه فرق میکند شما باید یک سری الگوریتم های Setup نویسی رو هم یاد بگیرید برای همینم اکثرا برنامه های تولید شده در سیستم عامل های یونیکسی رو ازادانه قرار میدهند.

در رابطه با خود Qt برای تولید یا همان Publish کردن پروژه : http://qt-project.org/doc/qt-5/index.html

یا اینکه در نهایت از ستاپ سازهای Cross platform ای استفاده میشود مثل : http://www.installjammer.com/ که رایگان هم هست.

pswin.pooya
یک شنبه 15 دی 1392, 13:57 عصر
با Qt میشه setup ساخت؟ چجوری باید برنامه خروجی رو بگیرم ازش؟

به نظر من یکی از بهترین گزینه ها برای ساخت setup نرم افزار install aware هست. هم کار باهاش راحته هم اینکه اذیت ها نرم افزارهای دیگه مثل install shield رو نداره. با این حال بسته به setup ای که در نظر دارید خودتون هم می تونید دست به کار شید. فقط یادتون باشه که پیچدگیهای ساخت setup مخصوصا در ویندوز خیلی خیلی زیاده

mehmir
یک شنبه 15 دی 1392, 14:33 عصر
کلا قضیه Setup میتونه هم پیچیده بشه هم راحت...در ویندوز شما میتونید با استفاده از Install سازهای حرفه راحت این کار رو انجام بدین ولی در لینوکس و مک قضیه فرق میکند شما باید یک سری الگوریتم های Setup نویسی رو هم یاد بگیرید برای همینم اکثرا برنامه های تولید شده در سیستم عامل های یونیکسی رو ازادانه قرار میدهند.

در رابطه با خود Qt برای تولید یا همان Publish کردن پروژه : http://qt-project.org/doc/qt-5/index.html

یا اینکه در نهایت از ستاپ سازهای Cross platform ای استفاده میشود مثل : http://www.installjammer.com/ که رایگان هم هست.


تا اینجا که من فهمیدم باید کلی فایل dll کنارش قرار بدم، مثلا من یه برنامه ساده hello word نوشتم البته ویندوز، 365 مگابایت حجم فایلای dllای بود که باید کنارش قرار میگرفت
این مشکلو چیکار کنم؟
با تشکر

کامبیز اسدزاده
یک شنبه 15 دی 1392, 14:56 عصر
تا اینجا که من فهمیدم باید کلی فایل dll کنارش قرار بدم، مثلا من یه برنامه ساده hello word نوشتم البته ویندوز، 365 مگابایت حجم فایلای dllای بود که باید کنارش قرار میگرفت
این مشکلو چیکار کنم؟
با تشکر

ببینید ذاتا شما برنامتون رو که بنویسید و کامپایل کنید کنارش کلی dll و فایل exe هست که مربوط به پروژتون هست اینا به کنار.
شما همینارو در یه ویندوز دیگه ای کپی کنی و اجرا کنی کار خواهد کرد بدون هیچ مشکلی و هیچ فریم ورکی لازم نیست نصب کنید.
فقط در رابطه با برنامه هایی که از دیتابیس استفاده میکنند و یا از API های خاص سیستم عاملی استفاده میکنند در این صورت باید اونارو داشته باشید.

مثال : برنامتون تموم شده و دارای دیتابیس MySQL هست حالا برای اینکه در سیستم عامل ویندوز دیگه ای اجرا بشه باید کانکتور های MySQL رو متناسب با ویرایش سیستم عامل خودتون نصب کنید.

در سیستم های یونیکسی هم همینطور هست.

omidshaman
یک شنبه 15 دی 1392, 18:35 عصر
تا اینجا که من فهمیدم باید کلی فایل dll کنارش قرار بدم، مثلا من یه برنامه ساده hello word نوشتم البته ویندوز، 365 مگابایت حجم فایلای dllای بود که باید کنارش قرار میگرفت
این مشکلو چیکار کنم؟
با تشکر
پروژه رو تو حالت release بیلد کن خیلی کمتر dll میخواد !
حتی با بیلد کردن Qt به شکل Static دیگه به dll هم نیازی نداری همون hello word میشه یک فایل exe چهار پنج مگابایتی .
http://qt-project.org/wiki/How_to_build_a_static_Qt_version_for_Windows_with_ gcc

mehmir
دوشنبه 16 دی 1392, 08:33 صبح
پروژه رو تو حالت release بیلد کن خیلی کمتر dll میخواد !
حتی با بیلد کردن Qt به شکل Static دیگه به dll هم نیازی نداری همون hello word میشه یک فایل exe چهار پنج مگابایتی .
http://qt-project.org/wiki/How_to_build_a_static_Qt_version_for_Windows_with_ gcc

چطور باید تو حالت release بیلد کنم؟
بیلد کردن به شکل static چطوریه؟ اون لینک که گذاشتین رو خوندم اما متوجه نشدم

با تشکر

کامبیز اسدزاده
دوشنبه 16 دی 1392, 10:48 صبح
چطور باید تو حالت release بیلد کنم؟
بیلد کردن به شکل static چطوریه؟ اون لینک که گذاشتین رو خوندم اما متوجه نشدم

با تشکر

شما به فکر بیلد کردن static نباشید نیازی به استاتیک کردن نیست ! هرجور باشه شما فایل های dll رو همراه با برنامتون نصب میکنید در Qt نیاز به نصب هیچ چیزی نیست خیالتون راحت.
مگر در موارد خاص که اونم با Setup سازی درسا حسابی حل میشه.

mehmir
دوشنبه 16 دی 1392, 11:01 صبح
شما به فکر بیلد کردن static نباشید نیازی به استاتیک کردن نیست ! هرجور باشه شما فایل های dll رو همراه با برنامتون نصب میکنید در Qt نیاز به نصب هیچ چیزی نیست خیالتون راحت.
مگر در موارد خاص که اونم با Setup سازی درسا حسابی حل میشه.

آخه حجم فایلای dll خیلی زیادن، حجم یه برنامه Hello word که نباید بشه حدود 340 مگابایت

کامبیز اسدزاده
دوشنبه 16 دی 1392, 11:18 صبح
آخه حجم فایلای dll خیلی زیادن، حجم یه برنامه Hello word که نباید بشه حدود 340 مگابایت

حجم یه برنامه Hello word شده 340 مگابایت ؟!؟!؟! :متعجب: :قهقهه: عجب !
اگه واقعا در حد یه Hello word هست شما احتمالا کتابخانه هایی Include کردی که در برنامتونم نیاز نیست استفاده کنید.
هیدر هایی که Include کردین رو لطفا بررسی کنید ببینید کدوم استفاده نمیشه حذفش کنید و دوباره حجمش رو مقایسه کنید.

mehmir
دوشنبه 16 دی 1392, 11:37 صبح
حجم یه برنامه Hello word شده 340 مگابایت ؟!؟!؟! :متعجب: :قهقهه: عجب !
اگه واقعا در حد یه Hello word هست شما احتمالا کتابخانه هایی Include کردی که در برنامتونم نیاز نیست استفاده کنید.
هیدر هایی که Include کردین رو لطفا بررسی کنید ببینید کدوم استفاده نمیشه حذفش کنید و دوباره حجمش رو مقایسه کنید.

مرسی از قهقهه :لبخندساده:
من هیچ چیز رو include نکردم
و هیچ کدی هم وارد نکردم
فقط یه برنامه ویندوز اپلیکیشن خالی هست
اما همونطور که گفتم حجم فایلای dllای که نیاز داره اینقدره
با تشکر

کامبیز اسدزاده
دوشنبه 16 دی 1392, 11:41 صبح
مرسی از قهقهه :لبخندساده:
من هیچ چیز رو include نکردم
و هیچ کدی هم وارد نکردم
فقط یه برنامه ویندوز اپلیکیشن خالی هست
اما همونطور که گفتم حجم فایلای dllای که نیاز داره اینقدره
با تشکر

خنده عیبی نداره !
شما کدهاتون رو بذارید تا بگم مشکل از کجاست ! 100% یجایی یه اشتباهی کردین که حجمش اینطوریه.

mehmir
دوشنبه 16 دی 1392, 11:52 صبح
خنده عیبی نداره !
شما کدهاتون رو بذارید تا بگم مشکل از کجاست ! 100% یجایی یه اشتباهی کردین که حجمش اینطوریه.


نیتش مهمه :لبخندساده:

این فولدریه که کد توشه، اما من فک کنم که بلد نیستم پابلیش کنم و مشکل از اینه
حالا شما لطف کنین یه نگاه بش بندازین
با تشکر

کامبیز اسدزاده
دوشنبه 16 دی 1392, 12:08 عصر
نیتش مهمه :لبخندساده:

این فولدریه که کد توشه، اما من فک کنم که بلد نیستم پابلیش کنم و مشکل از اینه
حالا شما لطف کنین یه نگاه بش بندازین
با تشکر
به دل نگیرید...
من تازه فهمیدم قضیه چیه !
شما منظورتون اینه فایل هایی مثل : Qt5Widgetsd.dll و Qt5Cored.dll و ... که نیاز هست پیش برنامتون باشه برای اجراش و حجمشونم بالاست , بله این درست ولی شما بدون داشتن این ها نمیتونید برنامرو اجرا کنید و از نظر من راه حلی برای کم کردن حجم این وجود ندارد مگر اینکه Static کامپایل بشه و در استاتیک هم فکر میکنم حجم exe به طور وحشتناکی بره بالا :) چون هرچی باشه همین فیال ها میاد قاطی exe میشه.

mehmir
دوشنبه 16 دی 1392, 12:14 عصر
به دل نگیرید...
من تازه فهمیدم قضیه چیه !
شما منظورتون اینه فایل هایی مثل : Qt5Widgetsd.dll و Qt5Cored.dll و ... که نیاز هست پیش برنامتون باشه برای اجراش و حجمشونم بالاست , بله این درست ولی شما بدون داشتن این ها نمیتونید برنامرو اجرا کنید و از نظر من راه حلی برای کم کردن حجم این وجود ندارد مگر اینکه Static کامپایل بشه و در استاتیک هم فکر میکنم حجم exe به طور وحشتناکی بره بالا :) چون هرچی باشه همین فیال ها میاد قاطی exe میشه.

حله آقا ... :لبخندساده:

خب پس قبول کردین که حجم یه برنامه hello word ساده اینقدر زیاد میشه؟
پس این همه برنامه کم حجم که وجود دارند چطوری نوشته شدند؟
با تشکر

کامبیز اسدزاده
دوشنبه 16 دی 1392, 12:21 عصر
حله آقا ... :لبخندساده:

خب پس قبول کردین که حجم یه برنامه hello word ساده اینقدر زیاد میشه؟
پس این همه برنامه کم حجم که وجود دارند چطوری نوشته شدند؟
با تشکر

ببینید خود برنامه تولید شده که حجمش نمیشه 340 مگ ! اینها پیش نیازات هستند مثل برنامه های دات نتی که خود برنامه به یه طرف و نصب دات نت 400..500 مگابایتیم یه طرف...
در رابطه Qt اگه دقت کنید در بخش debug برنامتون در hello word چیزی حدود 700 .. 800 کیلوبایت حجم داره که خیلی جزئیه و طبیعی این پیش نیاز ها و فایل های dll خود فریم ورک هستند نه برنامه ! :)

درکل اینهم طبیعی هست یک فریم ورک به این قدرتمندی با خودش چنین حجمی روهم داشته باشه.

mehmir
دوشنبه 16 دی 1392, 13:21 عصر
ببینید خود برنامه تولید شده که حجمش نمیشه 340 مگ ! اینها پیش نیازات هستند مثل برنامه های دات نتی که خود برنامه به یه طرف و نصب دات نت 400..500 مگابایتیم یه طرف...
در رابطه Qt اگه دقت کنید در بخش debug برنامتون در hello word چیزی حدود 700 .. 800 کیلوبایت حجم داره که خیلی جزئیه و طبیعی این پیش نیاز ها و فایل های dll خود فریم ورک هستند نه برنامه ! :)

درکل اینهم طبیعی هست یک فریم ورک به این قدرتمندی با خودش چنین حجمی روهم داشته باشه.

کاربر که این چیزا رو نمیفهمه
اون یه برنامه کم حجم میخواد
پس این برنامه های کم حجم رو چه جوری نوشتن؟ با چی نوشتن؟
برنامه ای که یه ستاپ داره فقط و هیچ چیزه دیگه ای نداره؟
ستاپش هم نهایت 4 5 مگا بایت میشه

کامبیز اسدزاده
دوشنبه 16 دی 1392, 13:31 عصر
کاربر که این چیزا رو نمیفهمه
اون یه برنامه کم حجم میخواد
پس این برنامه های کم حجم رو چه جوری نوشتن؟ با چی نوشتن؟
برنامه ای که یه ستاپ داره فقط و هیچ چیزه دیگه ای نداره؟
ستاپش هم نهایت 4 5 مگا بایت میشه

خب این برنامه های کم حجم همچین سنگین و حرفه ای نیستند ! مثلا شما از برنامه هایی مثل فوتوشاپ انتظار داری بیاد بشه 2..3 مگابایت ؟! مسلما نه نمیشود ! ولی برنامه هایی هستند این وسط که کلا فقط یک هدف خاصی دارند مثل نرم افزار Winrar برای مثال / اینجور برنامه هار بدون چهارچوب خاص مینویسند مثلا از C/C++ استفاده میشه بدون اینکه هارچوبی داشته باشه خودششون میان چهارچوب مینویسند و بر اساس الگوریتم های خاص خودشون ازش استفاده میکنند.

شما یه برنامه با C++ بنوبسی همین Hello word ولی بدون استفاده از Qt یا xWidget خواهید دید حجمش پایین هست ولی در عوض نه گرافیک دارن نه رابط کاربری درست حسابی چون هدفشونم این نیست پس در نتیجه برای داشتن برنامه های قدرتمند و در عین حال زیبا باید از چهارچوب های خاصی استفاده کنید.

شما برای اینکه یه برنامه 3..4 مگابایتی بنویسی باید با زبان های دیگه کار کنی و یا با همین C++ بدون استفاده از چهارچوب استفاده کنی که در این حالت هم از نظر من محیط و رابط کاربری برنامتون تعریفی نخواهد داشت.

کامبیز اسدزاده
دوشنبه 16 دی 1392, 13:35 عصر
درضمن کاربری که براش نه کیفیت و نه کارایی برنامه مهم نیست همون بهتر براش با VB6 برنامه بنویسی !

mehmir
دوشنبه 16 دی 1392, 14:09 عصر
خب این برنامه های کم حجم همچین سنگین و حرفه ای نیستند ! مثلا شما از برنامه هایی مثل فوتوشاپ انتظار داری بیاد بشه 2..3 مگابایت ؟! مسلما نه نمیشود ! ولی برنامه هایی هستند این وسط که کلا فقط یک هدف خاصی دارند مثل نرم افزار Winrar برای مثال / اینجور برنامه هار بدون چهارچوب خاص مینویسند مثلا از C/C++ استفاده میشه بدون اینکه هارچوبی داشته باشه خودششون میان چهارچوب مینویسند و بر اساس الگوریتم های خاص خودشون ازش استفاده میکنند.

شما یه برنامه با C++ بنوبسی همین Hello word ولی بدون استفاده از Qt یا xWidget خواهید دید حجمش پایین هست ولی در عوض نه گرافیک دارن نه رابط کاربری درست حسابی چون هدفشونم این نیست پس در نتیجه برای داشتن برنامه های قدرتمند و در عین حال زیبا باید از چهارچوب های خاصی استفاده کنید.

شما برای اینکه یه برنامه 3..4 مگابایتی بنویسی باید با زبان های دیگه کار کنی و یا با همین C++ بدون استفاده از چهارچوب استفاده کنی که در این حالت هم از نظر من محیط و رابط کاربری برنامتون تعریفی نخواهد داشت.

من یه برنامه میخوام بنویسم با واسط گرافیکی ویندوز
حجمش برام مهمه که کم باشه
برنامه های زیادی دیدم که واسط ویندوزی دارن و حجمشون هم کمه
اونا را چجوری نوشتن؟

Vitallity
دوشنبه 16 دی 1392, 15:34 عصر
دوست عزیز
زمانی که داری در برنامه‌ات صورت داینامیک از کتاب‌خونه‌های Qt استفاده می‌کنی باید dll‌های مربوط رو ضمیمه نرم‌افزارت کنی تا تابع‌ها از اونا فراخوانی بشن. مزیت این کار پایین آوردن زمان کامپایل (حداقل مزیت قابل ذکر) هست. اما باعث می‌شه تمام فانکشن‌ها و کلاس‌هایی رو هم که استفاده نمی‌کنی داخل اون dll باشه و خب باعث می‌شه حجم نرم‌افزارت بره بالاتر... حالا اگر می‌خواهی حجم برنامه‌ات متناسب با کدی که می‌نویسی باشه باید سورس Qt رو بگیری برای خودت به صورت Static کامپایل‌ کنی. اینطوری حجم برنامه‌ات میاد پایین و حتی لازم نیست که dll هم همراه فایل اجراییت پیوست کنی.

pswin.pooya
دوشنبه 16 دی 1392, 15:43 عصر
آخه حجم فایلای dll خیلی زیادن، حجم یه برنامه Hello word که نباید بشه حدود 340 مگابایت لازم نیست همه dllها رو کپی کنید. exe برنامه رو ببرید یه فولدر جدید بعدش اجرا کنید هر کدوم از dllها رو که خواست کنارش اضافه کنید.

ضمننا حجمش 340 مگ نمیشه. اشتباه می کنید. چیزی حدود 40 مگ ایناست که نسبت به نمونه های مشابه مثل دات نت فریم ورک خیلی خیلی کمتره.

لازم بگم که برنامه هایی مثل chrome رو با همین Qt نوشتن که اگر نگاه کنید حجم این برنامه ها فوقالعاده کمه.

فقط امکاناتی رو که لازم دارید به پروژه اضافه کنید. یادتون باشه خیلی بعیده که کلیه کتابخونه ها رو توی یه پروژه لازم داشته باشید.



صورت Static کامپایل‌ کنی. اینطوری حجم برنامه‌ات میاد پایین و حتی لازم نیست که dll هم همراه فایل اجراییت پیوست کنی.این طرز فکر زیاد هم درست نیست. زمانی که ما kge رو استاتیک می ساختیم (اوایل حدود سال 85 ) حجم هر برنامه حداقل 1 مگ می شد. اما بعدا که موتور رو dll کردیم هر برنامه کمتر از 100 کیلو خود dll حدود 500 کیلو اینا بود. که نتیجتا حجم کمتر شده بود. دقیقا نمی دونم دلیلش چیه اما خب تجربه اینجوری بود.


ستاپش هم نهایت 4 5 مگا بایت میشه

می تونید از MFC استفاده کنید که حدود 3 مگ اینا در حالت استاتیک میشه. که زیپ یا کامپرس بشه به نزدیکهای یک مگ میرسه.


پس این برنامه های کم حجم رو چه جوری نوشتن؟ با چی نوشتن؟
راه حل دیگه استفاده از WIN32 هست که خیلی خیلی مشکلتره و البته سریعتر.

کامبیز اسدزاده
دوشنبه 16 دی 1392, 23:02 عصر
و در نهایت کلام میتونم اضافه کنم که هر که بامش بیش برفش بیش :D
ذاتا کارایی بهتر و کیفیت بالاتر تو این دوره زمونه دیگه حجم بالا بی معنیه.

omidshaman
سه شنبه 17 دی 1392, 13:50 عصر
به دل نگیرید...
من تازه فهمیدم قضیه چیه !
شما منظورتون اینه فایل هایی مثل : Qt5Widgetsd.dll و Qt5Cored.dll و ... که نیاز هست پیش برنامتون باشه برای اجراش و حجمشونم بالاست , بله این درست ولی شما بدون داشتن این ها نمیتونید برنامرو اجرا کنید و از نظر من راه حلی برای کم کردن حجم این وجود ندارد مگر اینکه Static کامپایل بشه و در استاتیک هم فکر میکنم حجم exe به طور وحشتناکی بره بالا :) چون هرچی باشه همین فیال ها میاد قاطی exe میشه.
نه اتفاقا خیلی حجم برنامه کمتر میشه.
الان روی همون Hello world تست کردم
32 بیتی کامپایل شده با vs2012 : حجم exe : هشت مگابایت---- بعد از فشرده سازی با upx حجم exe : سه مگابایت
64 بیتی :حجم exe : ده مگابایت ---- بعد از استفاده از upx : چهار مگابایت

Vitallity
سه شنبه 17 دی 1392, 14:34 عصر
این طرز فکر زیاد هم درست نیست. زمانی که ما kge رو استاتیک می ساختیم (اوایل حدود سال 85 ) حجم هر برنامه حداقل 1 مگ می شد. اما بعدا که موتور رو dll کردیم هر برنامه کمتر از 100 کیلو خود dll حدود 500 کیلو اینا بود. که نتیجتا حجم کمتر شده بود. دقیقا نمی دونم دلیلش چیه اما خب تجربه اینجوری بود.

KGE (Koochhool Game Engine ؟ : D
من این تجربه رو با Boost دارم. یعنی هم static رو سیستم دارم و هم dll بسته به نیاز ... زمانی که استاتیک داری کامپایل می‌کنی یه سری پارامتر برای کامپایلر هست که با تنظیم اونا میشه حجم رو کاهش داد. (google it)

pswin.pooya
سه شنبه 17 دی 1392, 19:46 عصر
KGE (Koochhool Game Engine ؟ : D
بله خودشه


من این تجربه رو با Boost دارم. یعنی هم static رو سیستم دارم و هم dll بسته به نیاز ... زمانی که استاتیک داری کامپایل می‌کنی یه سری پارامتر برای کامپایلر هست که با تنظیم اونا میشه حجم رو کاهش داد. (google it)

خب آره. اما کلا تا اونجا که من متوجه شدم هیچ معیار دقیقی مخصوصا توی ویندوز نمی تونید برای اندازه پیدا کنید. بعضی وقتها کم میشه و بعضی وقتا زیاد. کلا ویندوز دیگه :لبخند:

کامبیز اسدزاده
سه شنبه 17 دی 1392, 21:09 عصر
بعضی وقتها کم میشه و بعضی وقتا زیاد. کلا ویندوز دیگه :لبخند:

این یعنی چی ؟ ربطی به سیستم عامل نداره !!! شما وقتی یه خط کد اضافی بار برنامه کنید مسلما به اندازه و حجم خروجی برنامه اضافه میشه !
تنها چیزی که میشه به ویندوز ربط داد در رابطه با افزایش حجم برنامه استفاده از دات نت در ورژن های مختلف هستش که در این صورت برنامه نسبت به چهارچوب های مختلف حجمش تغییر میکنه.
در Qt هم همینطور میتونه باشه مثل نسخه های قبلی و نسخه های جدید که در خروجی حجم برنامه فرق تاثیر میزارن و دلایلش توسعه یافتن چهارچوبه که مسلما باید حجم فایل های خروجی به خاطر کتابخانه ها افزایش پیدا کنه.

alireza es
پنج شنبه 19 دی 1392, 23:20 عصر
حالا من سورس کیوت رو دانلود کردم.حالا اگه اونو کامپایل کنم یه گزینه ای به نام کامپایل استاتیک اضافه میشه؟چی میشه؟

حامد مصافی
جمعه 20 دی 1392, 00:03 صبح
دوستان. کیوت در آزادانه‌ترین حالت تحت مجوز LGPL به دست شما میرسد. این یعنی اینکه شما فقط می‌توانید به صورت دینامیک آن را به برنامه خود لینک کنید، لینک استاتیک نیازمند مجوز تجاری کیوت است!

alireza es
جمعه 20 دی 1392, 09:46 صبح
دوستان. کیوت در آزادانه‌ترین حالت تحت مجوز LGPL به دست شما میرسد. این یعنی اینکه شما فقط می‌توانید به صورت دینامیک آن را به برنامه خود لینک کنید، لینک استاتیک نیازمند مجوز تجاری کیوت است!
آحه من شنیدم برای کامپایل استاتیک باید سورس کیوت رو دانلود کنید و اونو کامپایل کنید.

کامبیز اسدزاده
جمعه 20 دی 1392, 11:00 صبح
آحه من شنیدم برای کامپایل استاتیک باید سورس کیوت رو دانلود کنید و اونو کامپایل کنید.

بله همینطوره Qt در دو حالت انتشار میشه که برای استفاده از اون شما میتونید به صورت استاتیک فقط در صورت داشتن لیسانس اون ازش استفاده کنید در غیر اینصورت طبق فرمایش جناب مصافی غیرقانونی است.
شما میتونید نسخه های غیر تجاری و داینامیکی رو دریافت و استفاده کنید منظورم نسخه های کامپایل شده : http://qt-project.org/downloads

alireza es
جمعه 20 دی 1392, 15:32 عصر
ممنون ولی میشه به طور کامل برام توضیح بدین
اگه من سورس کیوت رو کامپایل کنم یه گزینه ای به نام کامپایل استاتیک اضافه میشه؟
این کار غیر قانونیه؟
از کجا میشه کیوت رو خرید و ...
اگه ممکنه کمکم کنید

کامبیز اسدزاده
جمعه 20 دی 1392, 15:43 عصر
ممنون ولی میشه به طور کامل برام توضیح بدین
اگه من سورس کیوت رو کامپایل کنم یه گزینه ای به نام کامپایل استاتیک اضافه میشه؟
این کار غیر قانونیه؟
از کجا میشه کیوت رو خرید و ...
اگه ممکنه کمکم کنید

خب چون غیرقانونی هست بنده تاحالا کامپایل Static نکردم و سراغشم نرفتم , چرا میخواهید از static استفاده کنید ؟ دلیل خاصی دارید؟
برای خریدش هم : http://qt.digia.com/Try-Buy/

omidshaman
شنبه 21 دی 1392, 20:49 عصر
از اون جایی که ایران کپی رایت نداره اشکالی نداره :( مگر این که بخوای خارج از ایران برنامرو بصورت close source بفروشی
البته تا اون جایی که من میدونم اگر برنامت به صورت open source باشه و .obj فایل ها هم برای دانلود موجود باشن برنامه می تونه static هم باشه ..

mehmir
پنج شنبه 01 اسفند 1392, 10:36 صبح
حالا من سورس کیوت رو دانلود کردم.حالا اگه اونو کامپایل کنم یه گزینه ای به نام کامپایل استاتیک اضافه میشه؟چی میشه؟


من در نهایت تونستم با استفاده از لینک زیر Qt رو به صورت استاتیک کامپایل کنم
http://www.7khatcode.com/973/%DA%A9%D8%A7%D9%85%D9%BE%D8%A7%DB%8C%D9%84-qt-%D8%A8%D8%B5%D9%88%D8%B1%D8%AA-static