PDA

View Full Version : مبتدی: اجرا کردن .exe خارج از محیط Qt



raminlich
جمعه 11 مهر 1393, 16:21 عصر
سلام
من پروژه کیوچیک نوشتم حالا می خوام از فولدر اجرا کنم نمیشه این کارایی که کردم:
اول تو حالت ریلیس مود بلد کردم پروژه رو.
بعد رفتم تو پوشه پروژه قسمته ریلیس dll هایی که نیاز داشت رو گذاشتم
ولی باز این ارور رو میده
124160
اینم بگم که می خوام این نرم افزارو رو یک کامپیوتر دیگه(ویندوز) اجرا کنم
یه سوال دیگه من ویندوزم 32 بیتی هست نرم افزار هایی که می نویسم فقط رو ویندوز 32 بیتی اجرا میشن؟:متفکر:

2020s1371
جمعه 11 مهر 1393, 18:11 عصر
منم مشکل مشابهی دارم! ولی امروز هیشکی تو انجمن نیست انگار!
124162

کامبیز اسدزاده
جمعه 11 مهر 1393, 19:54 عصر
سلام
من پروژه کیوچیک نوشتم حالا می خوام از فولدر اجرا کنم نمیشه این کارایی که کردم:
اول تو حالت ریلیس مود بلد کردم پروژه رو.
بعد رفتم تو پوشه پروژه قسمته ریلیس dll هایی که نیاز داشت رو گذاشتم
ولی باز این ارور رو میده
124160
اینم بگم که می خوام این نرم افزارو رو یک کامپیوتر دیگه(ویندوز) اجرا کنم
یه سوال دیگه من ویندوزم 32 بیتی هست نرم افزار هایی که می نویسم فقط رو ویندوز 32 بیتی اجرا میشن؟:متفکر:


منم مشکل مشابهی دارم! ولی امروز هیشکی تو انجمن نیست انگار!
124162

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

2020s1371
جمعه 11 مهر 1393, 20:24 عصر
من از کیوت کریتور 3.2.1 ( کیوت 5.3.2 ) و کامپایلر mingw482
هردو32 بیتی

کامبیز اسدزاده
جمعه 11 مهر 1393, 20:48 عصر
من از کیوت کریتور 3.2.1 ( کیوت 5.3.2 ) و کامپایلر mingw482
هردو32 بیتی

یک پروژه ساده بدون هیچ چیزی ایجاد کنید و به اینصورت qmake و بعد build کنید سپس تست کنید ببینید آیا بازم این خطارو میده یا خیر.
شما به این فایل ها نیاز خواهید داشت : Qt5Core.dll , Qt5Gui.dll , Qt5Widgets.dll , libwinpthread-1.dll , libstdC++‎‎‎-6.dll , libgcc_s_dw2-1.dll , icuuc52.dll , icuin52.dll , icudt52.dll
همچنین از داخل پوشه plugins پوشه platforms رو کپی کنید در کنار برنامتون.

2020s1371
جمعه 11 مهر 1393, 21:00 عصر
یه پروژه ساختم با یه دکمه ک وقتی روش کلیک کنید خارج بشین و همه اینایی که گفتین رو کنارش گذاشتم ولی بازم ارور قبلی رو داد!! :گریه:

raminlich
جمعه 11 مهر 1393, 21:28 عصر
من مشکلم حل شد اینطوری
1-یک پروژه ساده بدون هیچ چیز ساختم.(یه پروژه QWidget )
2-بعد تو حالت debug بلد کردم.
3-تمام چیز هایی که آقای اسدزاده گفته بود رو کپی کردم ولی بازم یه سری dll می خواست رفتم هر چی dll تو ارور ها می خواست رو کپی کردم تمام. و همون dll هارو برای هر پروژه ای که داشتم گذاشتم حل شد
اما یه سوال از آقای اسد زاده دارم
راه دیگه ایی به غیر از کپی کردن این dll ها نیست؟ اخه این عقلانی نیست یه پروژه ساده و کوچیک 430 mb باشه!

2020s1371
جمعه 11 مهر 1393, 21:33 عصر
2-بعد تو حالت debug بلد کردم.

چه جالب !
برای منم تو این پروژه جدیده، دیباگ کار داد ولی توی ریلیز نه!! چرا؟؟؟!!! تفاوت این دوتا چیه؟؟
(برم برای پروژه خودم چکش کنم! :) )



راه دیگه ایی به غیر از کپی کردن این dll ها نیست؟ اخه این عقلانی نیست یه پروژه ساده و کوچیک 430 mb باشه!
تا اونجا که من اطلاع دارم با کامپایل استاتیک کیوت میشه ! (که البته غیر قانونیه(!)مگر در نسخه تجاری)

کامبیز اسدزاده
جمعه 11 مهر 1393, 21:58 عصر
من مشکلم حل شد اینطوری
1-یک پروژه ساده بدون هیچ چیز ساختم.(یه پروژه QWidget )
2-بعد تو حالت debug بلد کردم.
3-تمام چیز هایی که آقای اسدزاده گفته بود رو کپی کردم ولی بازم یه سری dll می خواست رفتم هر چی dll تو ارور ها می خواست رو کپی کردم تمام. و همون dll هارو برای هر پروژه ای که داشتم گذاشتم حل شد
اما یه سوال از آقای اسد زاده دارم
راه دیگه ایی به غیر از کپی کردن این dll ها نیست؟ اخه این عقلانی نیست یه پروژه ساده و کوچیک 430 mb باشه!

چرا هستش :) در محیط ویندوز شما وقتی از Mingw استفاده میکنید حجمش اینطور بالاست...
من همین پروژه خودم رو با همین روش ایجاد کردم حدود 1.5 گیگ شد ! :لبخند: برای حل مشکل از Visual studio Addons برای Qt استفاده کنید و در محیط VS کد رو کامپایل کنید با کامپایلر MSVC2013 در این صورت پروژه 1.5 گیگی من شد 72 مگابایت :چشمک: حالا پروژه های شما هم میاد میشه 20 - 30 مگ که به نظرم خیلی بهتر از 400 مگ هست.


اگه dll های مربوط به Qt MSVC رو ببینید خواهید دید که چقدر حجمشون پایینه در حد KB.
دلیل اینکه MinGW حجم زیادی رو میده بیرون این هستش که کامپایلر GCC رو که مختص محیط Unix هستش در محیط ویندوز شیه سازی و به استاندارد های MSVC تبدیل میکنه بنابراین حجم بسیار بالا هستش و به نظر شخصیه من استفاده از MinGw در محیط ویندوز به خاطر مشکلاتی که داره درست نیست حد اقل تا زمانی که MSVC رو داریم استفاده از این کامپایلر در محیط ویندوز جایز نیست :لبخندساده: چون MSVC مخصوص محیط ویندوز هست و سازگاری بسیار عالی با محیط ویندوز داره.

در ضمن در حالت Release حجم پایینتر هم میاد...

روش دیگه ای هم اینه که Static بیلد کنید که من توصیه نمیکنم...همین Dynamicخیلی بهتره.

کامبیز اسدزاده
جمعه 11 مهر 1393, 22:21 عصر
در رابطه با کامپایلرMingw یه توضیحی بدهم شاید مفید باشه...
ببینید دلیلی این مشکلات که یکشی حجم بالا در خروجی ها و dll ها و مشکلاتی از قبیل ناهماهنگی کامل بر روی دیگر کتابخانه ها روی این کامپایلر فقط یک دلیل میتونه باشه...
باید به این نکته دقت کنید که کامپایلر Mingw برای ویندوز تعبیه شده که کاملا کامپایلر GCC که برای محیط Unix هستش رو پورت میکنه خب در این حالت مشکلات حاضر کاملا عادی هستش چون یک کامپایلر غیر بومی رو برای ویندوز پورت کردن بنابراین از من به شما توصیه هیچوقت تا زمانی که مجبور نیستید از کامپایلر MinGw روی محیط ویندوز برای خروجی گرفتن استفاده نکنید.

من به شخصه مشکلاتش رو خیلی دیدم یکیش همین حجم بالا و دیگری ناسازگاری با کتابخانه های فرعی در استفاده همرا با Qt هستش.
و در نهایت برعکس GCC بهترین کامپایلر و قدرتمندترین کامپایلر در محیط های Unix هستش و در این محیط ها مشکلات خاصی رو نداره فقط در محیط ویندوز سعی کنید ازش دوری کنید تا با مشکل مواجه نشید.:لبخند: به عنوان مثال برای اینکه بخواین بر اساس استاندارد C++‎‎‎ 11 کد نویسی کنید مجبورید Config بنویسید برای فایل .pro در حالی که در MSVC چنین مشکلاتی وجود نداره هرچی باشه کامپایلر مخصوص ویندوز و کاملا استاندارد و سازگار با C++‎‎‎11 هستش.

raminlich
شنبه 12 مهر 1393, 01:20 صبح
خوب من الان یک visual studio express 2010 دارم می تونم کامپایلر GCC رو پاک کنم msvc رو جاش بزارم؟

raminlich
شنبه 12 مهر 1393, 02:24 صبح
بیخیالش اصلا

کامبیز اسدزاده
شنبه 12 مهر 1393, 10:06 صبح
خوب من الان یک visual studio express 2010 دارم می تونم کامپایلر GCC رو پاک کنم msvc رو جاش بزارم؟

بهترین روش در محیط ویندوز...



دانلود : http://download.qt-project.org/official_releases/qt/5.3/5.3.2/qt-opensource-windows-x86-msvc2013_opengl-5.3.2.exe
دانلود : http://download.qt-project.org/official_releases/vsaddin/qt-vs-addin-1.2.3-opensource.exe
تنظیمات این دو و استفاده از محیط Visual Studion 2013 و یا همون محیط Qt Creator و استفاده از کامپایلر MSVC


در رابطه با VS Express نظرم منفی هست چون از Qt Addons پشتیبانی نمیکنه.

حامد مصافی
شنبه 12 مهر 1393, 11:15 صبح
شما ظاهرا dll ها رو از فولدر QtCreator کپی کردید. اگر همینطوره dll ها رو از فولدر bin کپی کنید.

C:\Qt\<Qt_Version>\bin