تولید خروجی نهایی یک پروژه کیوت با ابزار windeployqt

سلام دوستان عزیز

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

نکته اول اینه که هر موقع خواستید خروجی نهایی رو بگیرید، حتما Release کامپایل کنید.

خب اگه به مسیری برید که فایل اجرایی براتون ساخته شده و فایل رو اجرا کنید قطع با خطایی روبرو میشید که میگه یه سری DLL نیاز داره که کنارش نیستند. در ویندوز کتابخانه‌هایی که یه برنامه نیاز داره میتونه کنارش باشه (و البته جاهای دیگه). پس یه راه حل اینه که هرچی DLL میگه کم دارم کنارش کپی کنید ولی این راه خیلی طولانیه و خطا پذیر. راه حل بهتر استفاده از ابزار windeployqt هستش که با Qt نصب میشه.

خب برای استفاده از این ابزار راه حل زیر رو طی کنید:

۱٫یه دونه کامند لاین ویندوز بالا بیارید. مثلا با زدن Windows+R

۲٫به مسیر نصب کیوت و پوشه bin برید.

۳٫دستور qtenv2.bat رو اجرا کنید تا Environment Variableهای کیوت تنظیم بشن.

اگر خروجی Setting up environment for Qt usage… رو مشاهده کردید یعنی همه چی به خوبی جلو رفته.

۴٫ حالا دستور windeployqt رو اجرا کنید. اگه این دستور با موفقیت اجرا شد یعنی مرحله قبل اوکی بوده.

۵. خب فایل exe تون رو توی یه پوشه خالی کپی کنید و به اون پوشه cd کنید.

۶٫ خب در مرحله آخر کافیه دستور windeployqt.exe exe_name رو اجرا کنید. یعنی دستور windeployqt رو اجرا کنید و به عنوان پارامتر به اون نام فایل اجرایی رو بدید:

خب همون طور که میبیند کنار فایل اجرایی، فایلهایی که نیاز بوده کپی شده اند. خب الان می‌تونید خیلی راحت برنامه تون رو هرجایی اجراکنید. البته بهتره با ابزار dependency walker بازم چک کنید که آیا DLL دیگه ای از سمت کامپایلر نیاز هست یا نه.

همونطور که می‌بینید یه سری DLL که مربوط به Visual Studio است هنوز کمه و اونا رو باید از مسیر نصب Visual Studio پیداشون کنید و کنار فایل اجرایی تون کپی کنید:

مثلا برای من در مسیر D:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\Tools قرار داشت.

امیدوارم مفید باشه براتون.

۸,۵۶۱ total views, 94 views today

Print Friendly, PDF & Email

درباره ی سعید دادخواه

یه برنامه نویس !

همچنین ببینید

شناسایی کلیه سیستم های آنلاین داخل شبکه – رویکرد آسان (قسمت دوم)

بسم الله الرّحمن الرّحیم سلام دوستان. در قسمت اول این مقاله چند روش برای پیدا …

3
دیدگاه بگذارید

avatar
2 Comment threads
1 Thread replies
0 دنبال کنندگان
 
Most reacted comment
داغ ترین نخ نظرات
2 کامنت گذاران
stackprogramerسعید دادخواهstack کامنت گذاران اخیر
  مشترک شو!  
جدیدترین قدیمی‌ترین دارای بیشترین امتیاز
میخوام باخبر شم از
stackprogramer
Member

من قبلا داخل کیوت کریتور تست کردم کلا تمام وابستگی ها را خودش درست می کرد. برای این مورد تست نزدم. بسیار عالی

stackprogramer
Member

منظورم بد نوشتم. البته منظورم این بود ای دی ایم کیوت کریتور بود. همین windeployqt شما را می زدم.