View Full Version : سوال: فایل exe کجا ذخیره میشه ؟
ravaei
سه شنبه 14 بهمن 1393, 19:18 عصر
درود ، من تازه وارد محیط Qt شدم وقتی برنامرو کامپایل میکنم فایل exe داخل پوشه debug ایجاد میشه ولی وقتی اجراش میکنم (خارج از برنامه ) ارور میده و نیاز به qt5cored.dll داره میشه یه توضیحی بدید؟؟ آیا مثل .netfreamwork باید کتاب خونه ای نصب بشه؟؟ اگه جوابش مثبته چرا حین نصب مثل visual studio همراهش نصب نشد؟؟
abbasi.naft
سه شنبه 14 بهمن 1393, 19:39 عصر
سلام
به این مسیر برید
C:\Qt\Qt5.4.0\5.4\mingw491_32\bin (البته بسته به نوع کامپایلر مسیر متفاوت میشه)
برنامه exe تولید شده رو در این مسیر کپی کنید ، بایستی اجرا بشه.
در این صورت تمام فایلهای dll مورد نیاز رو کپی کنید و بعد از اون برنامه شما پرتابل میشه و قابل انتقال به سیستم دیگری میباشد.
منتها حواستون باشه که در سیستم هدف ران تایم ها رو قبلش بایستی نصب بکنید.
موفق باشید
chikar
سه شنبه 14 بهمن 1393, 21:08 عصر
سلام به مسیر C:\Qt\Qt5.3.2\5.3\msvc2010_opengl\bin برید (یعنی جایی که کیوت و مخلفاتش مثل designer , assistant نصب هست)
بعد dll هایی رو که فایل .exe برنامه خودتون رو که اجرا می کنید از تون می خواد رو از مسیر بالا کپی کنید و بریزید کنار فایل .exe برنامتون
برای یک برنامه معمولی این dll ها کافی هستند:
Qt5Widgets.dll
Qt5Gui.dll
Qt5Core.dll
icuuc52.dll
icuin52.dll
icudt52.dll
ravaei
سه شنبه 14 بهمن 1393, 22:04 عصر
سلام
به این مسیر برید
C:\Qt\Qt5.4.0\5.4\mingw491_32\bin (البته بسته به نوع کامپایلر مسیر متفاوت میشه)
برنامه exe تولید شده رو در این مسیر کپی کنید ، بایستی اجرا بشه.
در این صورت تمام فایلهای dll مورد نیاز رو کپی کنید و بعد از اون برنامه شما پرتابل میشه و قابل انتقال به سیستم دیگری میباشد.
منتها حواستون باشه که در سیستم هدف ران تایم ها رو قبلش بایستی نصب بکنید.
موفق باشید
منطورتون از ران تایم چیه؟؟ من تقریبا 10 تا dll انداختم کنارش و هنوز ران نشد 10 تا dll ای که می خواست ! در ضمن تا الان حجم dll ها تقریبا 80 mg شده :عصبانی++::عصبانی++::گریه:
abbasi.naft
سه شنبه 14 بهمن 1393, 23:47 عصر
سلام مجدد
دوست عزیز ، چون کیوت بر پایه زبان سی پلاس پلاس هست ، بایستی برای اجرای فایل exe شما ، علاوه بر dll های مورد نیاز کیوت ، بایستی ران تایم های این زبان نیز در سیستم هدف موجود باشد.
همین طور که دوست گرامی جناب chikar (http://barnamenevis.org/member.php?231853-chikar)
فرمودند این dll ها نیاز می باشد ، اما این dll ها در شرایط نرمال به تنهایی کفایت میکنند ، اما اگر شما از هدرفایلهای دیگه ای در برنامتون استفاده کرده باشید ، بایستی تعداد dll بیشتری را جهت پورتابل کردن برنامتون در کنار فایل exe قرار بدهید.
پیشنهاد اول من به شما این است که ابتدا فایل exe تولیدی خود را در همان مسیر گفته شده در بالا کپی کرده و از صحت اجرای آن اطمینان حاصل پیدا بکنید.
در مرحله دوم ، فایل exe خود را به تنهایی اجرا نمایید و هر فایل dll رو که برنامه ، طلب کرد در کنار آن کپی نمایید.
سوم بدلیل آنکه در تولید فایل exe موفق بوده اید ، پس ران تایم های خود زبان سی پلاس پلاس در سیستم شما موجود می باشد.
چهارم برای نصب ران تایم های زبان سی پلاس پلاس در سیستم هدف ، بسته به نوع فایلی exe ای که کامپایل نموده و خروجی گرفته اید ، لطفا Microsoft Visual C++ Redistributable مناسب آن را در سیستم هدف نصب نمایید.
موفق باشید
negative60
سه شنبه 14 بهمن 1393, 23:58 عصر
درود ، من تازه وارد محیط Qt شدم وقتی برنامرو کامپایل میکنم فایل exe داخل پوشه debug ایجاد میشه ولی وقتی اجراش میکنم (خارج از برنامه ) ارور میده و نیاز به qt5cored.dll داره میشه یه توضیحی بدید؟؟ آیا مثل .netfreamwork باید کتاب خونه ای نصب بشه؟؟ اگه جوابش مثبته چرا حین نصب مثل visual studio همراهش نصب نشد؟؟
برنامه رو تو حالت Relase کامپايل کنيد بعد از فولدر Relase فايل برنامه تون رو کپی کنيد و به هيچ عنوان خروجی Debug برنامه رو به عنوان پروژه نهايی منتشر نکنيد.
برای پيدا کردن dll های مورد نياز برنامه تون هم از برنامه Dependency Walker استفاده کنيد.
اگه قرار نيست برنامتون تو سايت های خارجی قرار بگيره برای کم شدن حجم برنامه تون ميتونيد اون رو به صورت استاتيک کمپايل کنيد (سرچ کنيد)
ravaei
پنج شنبه 16 بهمن 1393, 11:54 صبح
برنامه رو تو حالت Relase کامپايل کنيد بعد از فولدر Relase فايل برنامه تون رو کپی کنيد و به هيچ عنوان خروجی Debug برنامه رو به عنوان پروژه نهايی منتشر نکنيد.
برای پيدا کردن dll های مورد نياز برنامه تون هم از برنامه Dependency Walker استفاده کنيد.
اگه قرار نيست برنامتون تو سايت های خارجی قرار بگيره برای کم شدن حجم برنامه تون ميتونيد اون رو به صورت استاتيک کمپايل کنيد (سرچ کنيد)
ممنون از راهنمایی ، منظورتون از اینکه برنامه تو حالت release کامپایل کنم یعنی چی؟ و یه سوال دیگه آیا حداقل حجم برنامه هایی که ایجاد میشه 380 mg هستش؟؟ با توجه به گفته های دوستان من dll هایی که لازم بود تا یه برنامه ساخته بشه گذاشتم کنارش برنامه هم اومد بالا ولی حجمش با حداقل dll های که می خواست 380 mg شد !!! :متفکر:
ciph3r
پنج شنبه 16 بهمن 1393, 15:17 عصر
ممنون از راهنمایی ، منظورتون از اینکه برنامه تو حالت release کامپایل کنم یعنی چی؟ و یه سوال دیگه آیا حداقل حجم برنامه هایی که ایجاد میشه 380 mg هستش؟؟ با توجه به گفته های دوستان من dll هایی که لازم بود تا یه برنامه ساخته بشه گذاشتم کنارش برنامه هم اومد بالا ولی حجمش با حداقل dll های که می خواست 380 mg شد !!! :متفکر:
بستگی به کامپایلرت داره
از ویژوال استادیو استفاده کن حجمت میشه 10 مگ
negative60
پنج شنبه 16 بهمن 1393, 16:03 عصر
ممنون از راهنمایی ، منظورتون از اینکه برنامه تو حالت release کامپایل کنم یعنی چی؟ و یه سوال دیگه آیا حداقل حجم برنامه هایی که ایجاد میشه 380 mg هستش؟؟ با توجه به گفته های دوستان من dll هایی که لازم بود تا یه برنامه ساخته بشه گذاشتم کنارش برنامه هم اومد بالا ولی حجمش با حداقل dll های که می خواست 380 mg شد !!! :متفکر:
در MSVC از تولبار بالا اون قسمت Debug رو به Release تغيير بديد! بعد روی پروژه کليک راست کنيد و Build رو بزنيد
در Qt creator هم سمت راست روی آيکن کامپيوتر کليک کنيد و بعد Relase رو انتخاب کنيد و برای کامپايل Ctrl + B رو بزنيد يا روی آيکن چکش کليک کنيد :)
شما مشخص نکرديد کامپايلرتون چيه اگه با mingw کيوت 5.4 کمپايل کنيد حداقل حجم dll ها تو حالت فشرده(zip) ميشه 21 MG اما اگه با MSVC کمپايل کنيد حجم کمتر ميشه.
ببينيد نياز نيست تمام dll های Qt رو کپی کنيد کنار برنامه! فقط اونهايی که لازم هست رو با برنامه که معرفی کردم پيدا کنيد و کنار برنامه تون قرار بديد
chikar
پنج شنبه 16 بهمن 1393, 18:41 عصر
شما به طور معمول به این فایل ها که در عکس گذاشتم نیاز دارید (جایی که qt creator نصب هستید برید و این فایل ها رو بردارید)
C:\Qt\Qt5.3.2\Tools\QtCreator\bin
128208
ravaei
پنج شنبه 16 بهمن 1393, 22:18 عصر
بستگی به کامپایلرت داره
از ویژوال استادیو استفاده کن حجمت میشه 10 مگ
یعنی از vs2013 openGL ؟ چون دارم از mingw482_32 استفاده می کنم حجم میره بالا ؟
abbasi.naft
پنج شنبه 16 بهمن 1393, 23:38 عصر
سلام و درود
البته قبل از اینکه نظر شخصی خودم رو بخوام بدم ، قبلش به این نکته اشاره بکنم که بنده چند ماهی هست که Qt کار میکنم ، بنابراین با توجه به تجربیات ناقصم این نظر رو میدم که شاید به نظرم دوستان باتجربه تر اشتباه باشه ، که در این صورت خواستار اصلاح اون از جانب دوستان بزرگوار هستم.
دوست گرامی جناب
ravaei (http://barnamenevis.org/member.php?306272-ravaei)
http://barnamenevis.org/images/statusicon/user-offline.png ، زمانی که شما تصمیم به استفاده از Qt بگیرید ، بسته به اینکه محیط استفاده Qt Creator و یا ویژوال استودیو باشد ، در هدر فایل برنامه از کتابخانه های کیوت استفاده میکنید ، پس طبیعتا در فایل نهایی ایجاد شده ، بایستی dll های استفاده شده ، حالا یا بصورت ایستا و یا پویا دیده شوند که حجم بالا میرود ، ولی نه آن 380 مگی که شما اشاره کرده اید.
دوست ارجمندی که در بالا به 10مگ اشاره کرده اند ، فکرمیکنم منظورشون در صورت استفاده هدرفایلهای محض ++c بوده و نه استفاده از هدرفایلها و کتابخانه های کیوت.
Qt Creator و VS هر دو یک IDE هستند که دستورات در آنها نوشته میشوند ، پس ملاک مهم ، تفکر کامپایلر تولید کننده فایل نهایی و کتابخانه های بکار رفته میباشد.
موفق باشید.
ravaei
جمعه 17 بهمن 1393, 01:32 صبح
سلام و درود
البته قبل از اینکه نظر شخصی خودم رو بخوام بدم ، قبلش به این نکته اشاره بکنم که بنده چند ماهی هست که Qt کار میکنم ، بنابراین با توجه به تجربیات ناقصم این نظر رو میدم که شاید به نظرم دوستان باتجربه تر اشتباه باشه ، که در این صورت خواستار اصلاح اون از جانب دوستان بزرگوار هستم.
دوست گرامی جناب
ravaei (http://barnamenevis.org/member.php?306272-ravaei)
http://barnamenevis.org/images/statusicon/user-offline.png ، زمانی که شما تصمیم به استفاده از Qt بگیرید ، بسته به اینکه محیط استفاده Qt Creator و یا ویژوال استودیو باشد ، در هدر فایل برنامه از کتابخانه های کیوت استفاده میکنید ، پس طبیعتا در فایل نهایی ایجاد شده ، بایستی dll های استفاده شده ، حالا یا بصورت ایستا و یا پویا دیده شوند که حجم بالا میرود ، ولی نه آن 380 مگی که شما اشاره کرده اید.
دوست ارجمندی که در بالا به 10مگ اشاره کرده اند ، فکرمیکنم منظورشون در صورت استفاده هدرفایلهای محض ++c بوده و نه استفاده از هدرفایلها و کتابخانه های کیوت.
Qt Creator و VS هر دو یک IDE هستند که دستورات در آنها نوشته میشوند ، پس ملاک مهم ، تفکر کامپایلر تولید کننده فایل نهایی و کتابخانه های بکار رفته میباشد.
موفق باشید.
ممنون از توجهتون ، درست میگید میدونم dll هایی که نیاز هست کنار برنامه باشه باید همون header هایی باشه که من استفاده کردم و قاعداتا کتابخونشون باید در دسترس باشه ولی موقع اجرای exe توی error ای که میده dll هایی رو میخواد که من از header اونها استفاده نکردم به همون خاطر 380 mg شده کلا برنامهء من یه فرم login با یه سری توابع دایرکتوریه که غیر از header های اصلی یه header Qdir اضافه کردم ولی نمیدونم چرا اینقدر dll می خواد ... :متفکر:
abbasi.naft
جمعه 17 بهمن 1393, 11:19 صبح
سلام و درود مجدد
لطفا کدهاتون رو در قالب فایل آپلود بکنید تا بهتون بگم که چه dll هایی باید در کنار فایلتون قرار بدید.
اگر یه عکس از صفحه ای که الان داخلش 380 مگ فایل dll هست رو هم ضمیمه کنید ، که دیگه چه بهتر.
موفق باشید.
ravaei
جمعه 17 بهمن 1393, 13:47 عصر
سلام و درود مجدد
لطفا کدهاتون رو در قالب فایل آپلود بکنید تا بهتون بگم که چه dll هایی باید در کنار فایلتون قرار بدید.
اگر یه عکس از صفحه ای که الان داخلش 380 مگ فایل dll هست رو هم ضمیمه کنید ، که دیگه چه بهتر.
موفق باشید.
http://s5.picofile.com/file/8168903976/hi.zip.html
ممنون ، این فایل که ضمیمش یه عکس از dll هاست و فولدریکه form ها و کد هاشون توش هست من احتمال دادم منظورتون این فولدره چون تو dll build ها هستن در واقع دو فولدر debug و release توش هست ... در ضمن این برنامه اولین برنامه ایه که ساختم و فقط جنبهء آموزشی داره که با دستور های اولیه qt آشنا بشم خیلی قاطی شدن کدا زیاد جدی نگیری :چشمک:
chikar
جمعه 17 بهمن 1393, 14:40 عصر
شما فقط فایل .exe برنامت رو بردار بگذار کنار فایل هایی که تو عکس گذاشتم
من پروژت رو دانلود کردم و تو دو تا سیستم هم انتقالش دادم هیچ مشکلی نداشت(البته .exe ات رو میگم ها، روی یکی از سیتم هام هم اصلا کیوت نصب نیست)
حجمش 46 مگ شد بعد از فشرده سازی 14 مگ می شه
بخوای کمتر هم میشه با کامپایل استاتیک
اینم عکس با فایل .exe شما
128227
ravaei
جمعه 17 بهمن 1393, 16:45 عصر
شما فقط فایل .exe برنامت رو بردار بگذار کنار فایل هایی که تو عکس گذاشتم
من پروژت رو دانلود کردم و تو دو تا سیستم هم انتقالش دادم هیچ مشکلی نداشت(البته .exe ات رو میگم ها، روی یکی از سیتم هام هم اصلا کیوت نصب نیست)
حجمش 46 مگ شد بعد از فشرده سازی 14 مگ می شه
بخوای کمتر هم میشه با کامپایل استاتیک
اینم عکس با فایل .exe شما
128227
128233
پش چرا واسه من اینجوری میشه؟؟ شما این فایل هارو یک سری گفتید بالا منم امتحان کردم نشد !!! این error که الان میبینید داره Qt5coed رو می خواد هر کودومو قرار میدم کنارش یکی دیگه می خواد و تا جایی ادامه پیدا می کنه که حجم فایل 380 mg میشه بعد ران میشه !!! :عصبانی:
کامبیز اسدزاده
جمعه 17 بهمن 1393, 21:17 عصر
128233
پش چرا واسه من اینجوری میشه؟؟ شما این فایل هارو یک سری گفتید بالا منم امتحان کردم نشد !!! این error که الان میبینید داره Qt5coed رو می خواد هر کودومو قرار میدم کنارش یکی دیگه می خواد و تا جایی ادامه پیدا می کنه که حجم فایل 380 mg میشه بعد ران میشه !!! :عصبانی:
سلام
همه دوستان جواب درستی دادند ولی به این اشاره نکردن که فایل های dll باید مشخص بشه...
شما در حالت debug برنامه رون بیلد میکنید پس باید فایل Qt5Cored.dll رو کپی کنید در حالی که شما از فایل Qt5Core.dll دارید استفاده میکنید دقت کنید زمانی برنامه شما به Qt5Core.dll نیاز داره که در حالت release اون رو بیلد کرده باشید.
پس توجه کنید تمام فایل های dll که انتهای آن ها با کلمه d تموم میشه رو باید کپی کنید.
کلمه d منظور برای جدا سازی فایل های debug هستش.
موفق باشید.
حامد مصافی
جمعه 17 بهمن 1393, 21:19 عصر
پروژه شما در حالت دیباگ تولید شده است، از ساید بار چپ گزینه release را انتخاب کنید. یا کلیدهای ctrl+t را فشار دهید
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.