ورود

View Full Version : سوال: اخطار در خروجی برنامه ی qt



ravand
پنج شنبه 09 مهر 1394, 11:17 صبح
سلام
من با برنامه ی Qt Creator یه خروجی از برنامه ام گرفتم. یعنی روی دکمه ی چک کش (ctrl+b) کلیک کردم. و به ادرس زیر رفتم:

F:\qt\build-test-Desktop_Qt_5_5_0_MinGW_32bit-Debug\debug
و روی فایلم که با نام test.exe بود کلیک کردم. و این اخطار رو بهم داد:

the program can't start because Qt5Cored.dll is missing from your computer . try reinstalling the program to fix this problem
135609
فکر میکنید مشکل از کجاست؟
متشکرم.

ravand
پنج شنبه 09 مهر 1394, 13:29 عصر
توی برنامه های دگه وقتی میخوایم فایلی اجرا کنیم فایل را در پوشه ی bin قرار میدیم. این qt را هم دیدم چند تا پوشه ی bin داشت. من باید project را در کدوم یک از این پوشه های bin قرار بدم؟

returnx
پنج شنبه 09 مهر 1394, 18:33 عصر
باید از دایرکتوری که کتابخانه های Qt را نصب کردید از پوشه ی bin ، فایل های DLL مورد نظر را کپی کنید و کنار فایل اجرایی برنامتون قرار دهید...
برای مثال :

C:\Qt\Qt5.5.0\5.5\mingw492_32\bin

در این پوشه از هر فایل DLL که مربوط به کتابخانه Qt هست ، دو تا خواهید دید ، که یکیش با 'd' ختم میشه ، فایل هایی که با 'd' ختم می شوند برای حالت Debug هست و فایل هایی که بدون 'd' هستند برای حالت Release...
این موضوع بار ها مطرح شده و اگر جستجو می کردید حتما زود تر به جواب میرسیدید...

ravand
پنج شنبه 09 مهر 1394, 19:04 عصر
جستجوی این سایت مشکل داره برای همین درست نمیشه پیدا کردم.
من پروژه ام رو داخل این ادرس ایجاد کردم. یک پوشه ایجاد شد.

F:\qt\5.5\mingw492_32\bin\
بعد همه ی فایل های با پسوند dll که به حرف d ختم میشد (برای مثال Qt5Multimediad.dll) را داخل پوشه ی debug گذاشتم . بعد بقیه ی فایل های dll را داخل پوشه ی release قرار دادم.
برنامه ای که من نوشتم داخل پوشه ی debug هست با فرمت exe که وقتی اجراش کردم. چنین اخطاری داد:

the program can't start becase libgcc_s_dw2-1.dll is missing from your computer. try reinstalling the program to fix this problem.

returnx
جمعه 10 مهر 1394, 10:20 صبح
بعد همه ی فایل های با پسوند dll که به حرف d ختم میشد (برای مثال Qt5Multimediad.dll) را داخل پوشه ی debug گذاشتم . بعد بقیه ی فایل های dll را داخل پوشه ی release قرار دادم.
همه ی فایل های DLL نیاز نیست کنار برنامتون کپی کنید ، فقط ماژول هایی که استفاده کردید(در خطا ها نام فایل های DLL مورد نیاز را میگه) ، را کنار برنامتون قرار بدید...

the program can't start becase libgcc_s_dw2-1.dll is missing from your computer. try reinstalling the program to fix this problem.
برنامه هایی که با mingw کامپایل می شوند نیاز به چند کتابخانه ی هم برای اجرا نیاز دارند ، مثل libgcc_s_dw2-1.dll که این فایل ها هم باید کنار فایل اجرایی قرار بگیرند ، این فایل ها هم در همان مسیری که DLL های Qt قرار دارد ، وجود دارند...

ravand
جمعه 10 مهر 1394, 10:26 صبح
من روی خود برنامه ام کلیک کردم هر بار که کلیک میکردم اسم یه فایل رو می نوشتم منم همون رو کپی کردم کنارش گذاشتم مشکل حل شد. عجیبه که برای یه برنامه ی ساده من باید بیش از 400 مگابایت حجم داشته باشم! یعنی هر چی بیشتر کد بزنم حجمش چند برابر میشه؟
و دیگه اینکه من Microsoft Visual C++‎‎‎ Runtime را نصب کردم تا بتونم فایل هاش رو اجرا کنم. در لینوکس و دیگر سیستم عامل ها چطور؟ در اون سیستم عامل ها باید چه برنامه ای نصب کنم؟

کامبیز اسدزاده
شنبه 11 مهر 1394, 12:31 عصر
من روی خود برنامه ام کلیک کردم هر بار که کلیک میکردم اسم یه فایل رو می نوشتم منم همون رو کپی کردم کنارش گذاشتم مشکل حل شد. عجیبه که برای یه برنامه ی ساده من باید بیش از 400 مگابایت حجم داشته باشم! یعنی هر چی بیشتر کد بزنم حجمش چند برابر میشه؟
و دیگه اینکه من Microsoft Visual C++‎‎‎‎‎‎‎ Runtime را نصب کردم تا بتونم فایل هاش رو اجرا کنم. در لینوکس و دیگر سیستم عامل ها چطور؟ در اون سیستم عامل ها باید چه برنامه ای نصب کنم؟

چرا 400 مگابایت ؟ :متعجب: چه خبره مگه بازی درست میکنیم !؟:لبخند: احتمالا شما تمامی کتابخانه رو کپی کردین چون کل پروژه Qt همینقدره :قهقهه:
شما اگر در رابطه با نحوه Deploy کردن برنامه آشنا باشید و قوانینی که در این کتابخانه گفته شده است رو رعایت کنید همین برنامه حدود 10 تا 30 مگابایت میشه.
من تا کنون پروژه هایی که کار کردم رو معمو لا از 10 الی 60 مگابایت بیشتر ندیدم مگر پروژه هایی که در اونها از Webengine و QML استفاده کنید که متناسب با آن حجم برنامه ها افزایش پیدا میکنه که خیلی هم طبیعیه.


این بخش رو با دقت مطالعه بفرمایید : http://doc.qt.io/qt-5/deployment.html
درضمن در لینوکس و دیگر سیستم عامل ها نیز توضیح داده شده همین لینکی که دادم رو ریز به ریز بررسی کنید.