ورود

View Full Version : ساخت ستاپ برای برنامه جهت اجرا در تمام ویندوز ها



ali_72
دوشنبه 19 بهمن 1394, 09:53 صبح
سلام
میخوام از برنامه ای که با Qt 5.5.1 و از Qml استفاده کردم ستاپ بسازم تا در ویندوزهای دیگه اجرا شه.
من از پوشه build-NameProject-Desktop_Qt_5_5_1_MSVC2013_64bit-Debug فایل exe پروژه رو گرفتم.
و dll های موردنیازش رو در کنارش کپی کردم. ولی نه خطایی میده نه اجرا میشه. حتی پوشه qml از درایو سی کپی کردم و در کنارش قرار دادم ولی فایده ای نداشت.

138883

کامبیز اسدزاده
سه شنبه 20 بهمن 1394, 13:05 عصر
سلام
میخوام از برنامه ای که با Qt 5.5.1 و از Qml استفاده کردم ستاپ بسازم تا در ویندوزهای دیگه اجرا شه.
من از پوشه build-NameProject-Desktop_Qt_5_5_1_MSVC2013_64bit-Debug فایل exe پروژه رو گرفتم.
و dll های موردنیازش رو در کنارش کپی کردم. ولی نه خطایی میده نه اجرا میشه. حتی پوشه qml از درایو سی کپی کردم و در کنارش قرار دادم ولی فایده ای نداشت.

138883

سلام

ببینید در QML یک سری نقطه های ریزی وجود داره، مثلا باید توجه داشته باشید که از چه ماژولی استفاده کرده اید.
در صورت استفاده از آن ماژول باید فایل پیش نیاز اون رو در کنار برنامه داشته باشید و تنها با کپی کردن پوشه qml مشکل حل نمشیه!
حتی در بعضی مواقع نیاز هست که فایل مربوط به qt.conf بررسی و تغییر بدین.
درضمن پوشه plugins و platform داخل اوت رو در کنار برنامه قرار بدین.

negative60
سه شنبه 20 بهمن 1394, 18:37 عصر
هيچوقت برای پروژه های نهايی از فايلهای ديباگ استفاده نکنيد
همانطور که گفته شد برای پروژه های QML فولدر qml و platform هم بايد کنار پروژه باشه و برای مشخص کردن مسير فولدر های qml و platform فايل بايد فايل
qt.conf
هم کنار فايل اجرايی برنامه باشه.

محتوای فايل qt.conf :

[Paths]
Plugins=plugins
Imports=imports
Qml2Imports=qml



همچنين فايلهای dll در فولدر platform و plugin بستگی به پروژه شما داره که در اون از چه ماژولهايی استفاده کرديد

ali_72
سه شنبه 24 فروردین 1395, 06:44 صبح
سلام
ببخشید تاپیک قدیمی رو دنبال میکنم
همون موقع ب نتیجه نرسیدم ولی گذاشتم برای زمانیکه پروژه به پایان رسید و مرحله ساخت ستاپ رسیدم. یعنی حالا :افسرده:

ویندوز من windows 8.1 64 bit هست
و
Qt Creator 3.5.1 (opensource)
Based on Qt 5.5.1 (MSVC 2013, 32 bit)

من تمام dll ها و فایل و فولدرهای مورد نیاز اجرای برنامه را در کنار فایل exe در یک پوشه قرار دادم
اما با اجرای برنامه با این خطا مواجه میشم

The application was unable to start correctly (0xc000007b).

خیلی تو نت گشتم صحبت از 32 و 64 بیت بودنه ولی نتونستم مشکل رو حل کنم
ممنون میشم راهنمایی کنید

chikar
سه شنبه 24 فروردین 1395, 18:15 عصر
نیازی نیست، بگردی ببینی پروژه ات، چه فایل ها و فولدرهایی رو نیاز داره بعد دونه دونه کپی شون کنی، کنار فایل .exe ات، بلکه یه راه خیلی ساده تر هست : مراحل زیر رو دنبال کن
139993

139994

حالا که به مسیر فایل exe. ات اومدی، فقط کافیه دستور . windeployqt.exe رو بزنی و اینتر کنی، خودش همه فایل و فولدرهای مورد نیازت رو متناسب با پروژه ای که نوشتی کنار فایل .exe ات اضافه می کنه!

ali_72
چهارشنبه 25 فروردین 1395, 01:47 صبح
نیازی نیست، بگردی ببینی پروژه ات، چه فایل ها و فولدرهایی رو نیاز داره بعد دونه دونه کپی شون کنی، کنار فایل .exe ات، بلکه یه راه خیلی ساده تر هست : مراحل زیر رو دنبال کن
139993

139994

حالا که به مسیر فایل .exe ات اومدی، فقط کافیه دستور windeployqt.exe رو بزنی و اینتر کنی، خودش همه فایل و فولدرهای مورد نیازت رو متناسب با پروژه ای که نوشتی کنار فایل .exe ات اضافه می کنه!

ممنون دوست عزیز
بله این کار را انجام دادم و فولدر ها و دی ال ال های مورد نیاز اضافه شد
اما دیگه هر چی فایل exe رو اجرا میکنم نه خطایی میده نه اینکه نرم افزار اجرا میشه :افسرده:

AliRezaBeytari
پنج شنبه 26 فروردین 1395, 06:59 صبح
چون شما از Qml هم استفاده میکنید باید مسیر فایل های Qml رو به windeployqt بدید.

شما اینطوری عمل کنید :

1. اول از کل پروژه release بگیرید و فایل exe رو درون پوشه ای با نام Published قرار بدید.
2. تمام فایل های qml رو درون فولدری با نام qml درون Published قرار بدید.
3. برنامه Qt 5.4 64-bit for Desktop رو باز کنید. (ورژن و نوع compiler شما ممکنه با مال من فرق بکنه)
4. با دستور cd به مسیر پوشه Published برید.
5. دستور زیر را اجرا کنید :

windeployqt --qmldir ./qml/ ./SimpleApp.exe

(در خط بالا ، به جای SimpleApp.exe نام فایل exe برنامه خودتون رو قرار بدید)

6. در نهایت کل فایل های مورد نیاز برای برنامه شما درون پوشه Published قرار داده میشود.

محتویات پوشه Published (قبل) :

140009

محتویات پوشه qml (قبل) :

140010

محتویات پوشه Published (بعد) :

140011

ali_72
پنج شنبه 26 فروردین 1395, 07:54 صبح
لطفا این لینک ها رو نگاه کنید
https://forum.qt.io/topic/65974/the-application-was-unable-to-start-correctly-0xc000007b/18

http://stackoverflow.com/questions/36592348/exe-file-doesnt-run

من این مراحل را انجام دادم

من تمام فایل ها و پوشه های مسیر C:\Qt\Qt5.5.1\5.5\msvc2013 را کپی کردم و فایل exe برنامه رو در پوشه bin در کنار سایر فایل ها قرار دادم. رو سیستم خودم بدون مشکل اجرا شد ولی وقتی رو سیستم دیگه با ویندوز یکسان بردم
اول خطا یافت نشدن msvcp120.dll و msvcr120.dll را داد بعد اینکه این دو dll را قرار دادم
خطا
The application was unable to start correctly (0xc000007b). را داد

خوب این لینک

https://forum.qt.io/topic/65974/the-application-was-unable-to-start-correctly-0xc000007b/20
داره به این موضوع اشاره میکنه که خطا این 2 dll نشوند دهنده نصب نبودن مایکروسافت ویژوال C++‎‎‎‎ هست :|
من
Visual C++‎‎‎‎ Redistributable for Visual Studio 2015

نصب کردم ولی فایده ای نداشت

140038

خوب من تو سربرگ کامپایلر کیوت چند ورژن C++‎‎‎‎ رو میبینم کدوم باید تصب شه
؟
من 15 و 12 رو نصب کردم ولی فایده ای نداشت :(

13 رو نصب کردم حل شد :لبخند:

از همه دوستان ممنونم

AliRezaBeytari
چهارشنبه 01 اردیبهشت 1395, 14:59 عصر
به جای --qm-dir از --quick استفاده کنید. به این صورت :



windeployqt --quick ./SimpleApp.exe

ali_72
یک شنبه 30 خرداد 1395, 11:17 صبح
سلام دوستان
لطفا راهنمایی کنید
من ویندوز جدید نصب کردم win10
مجدد کیوت نصب کردم qt 5.7.0
ویژوال استادیو 2015 ذارم رو سیستم
الان خطا

خطاThe application was unable to start correctly (0xc000007b). را داد
رو میده
با اینکه Visual C++‎‎‎‎‎ Redistributable for Visual Studio 2015 رو نصب کردم

mohammad0773
دوشنبه 31 خرداد 1395, 16:42 عصر
سلام دوستان
لطفا راهنمایی کنید
من ویندوز جدید نصب کردم win10
مجدد کیوت نصب کردم qt 5.7.0
ویژوال استادیو 2015 ذارم رو سیستم
الان خطا

خطاThe application was unable to start correctly (0xc000007b). را داد
رو میده
با اینکه Visual C++‎‎‎‎‎‎ Redistributable for Visual Studio 2015 رو نصب کردم

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

ali_72
سه شنبه 01 تیر 1395, 07:49 صبح
برای کیوت کریتور این خطا رو دارید یا برنامتون؟
منم یه مورد مشابه داشتم.اولین بار که خروجی گرفتم کاملا خوب کار میکرد.بعد یه سری جلو بردمش اما بعد از خروجی مجدد همین خطا رو داد!اما هنوز باهاش ور نرفتم که بدونم چطوری رفعش کنم.

تو سیستم خودم ک کیوت نصبه هیچ مشکلی تو اجرا نیست
من میخوام فایل اجرایی برنامه رو رو سیستم های دیگه اجرا کنم
الان رو سیستم های 7 32 بیت اجرا میشه
فقط رو 8.1 اجرا نمیشه
نمیدونم من قبلا عین همین روش رو استفاده میکردم و بدون مشکل روی همه سیستم ها با همه ویندوزها اجرا میشد

arashz4
پنج شنبه 03 تیر 1395, 23:06 عصر
داری از دیباگ استفاده میکنی باید روی حالت ریلیز باشه برای دیباگ باید از dll های دیباگ استفاده کنی و باید ران تایم ویژوال استودیو 2013 هم روی سیستم مقابل نصب باشه و یا فابل های dll ران تایم ویژوال استودیو 2013 در کنار فایل اجرایی باشه

ali_72
شنبه 05 تیر 1395, 07:44 صبح
داری از دیباگ استفاده میکنی باید روی حالت ریلیز باشه برای دیباگ باید از dll های دیباگ استفاده کنی و باید ران تایم ویژوال استودیو 2013 هم روی سیستم مقابل نصب باشه و یا فابل های dll ران تایم ویژوال استودیو 2013 در کنار فایل اجرایی باشه

از release استفاده کردم
Visual C++‎‎‎‎‎‎‎ Redistributable for Visual Studio 2015
هم نصب کردم رو سیستم کاربر

نمیدونم قبلا با این روش رو همه سیستم ها اجرا می شد