نمایش نتایج 1 تا 11 از 11

نام تاپیک: مشکل عجیب در اجرا و اجرا برنامه به شکل Static بدون dll ها

  1. #1

    مشکل عجیب در اجرا و اجرا برنامه به شکل Static بدون dll ها

    با سلام
    من جدید ترین نسخه qt رو دانلود کردم و با اون در محیط qt creator یک پروزه gui ساختم و وان رو در حالت release ساختم و حالا dll های لازم رو در کنار اون قرار دادم ولی وقتی می خوام اون رو اجرا کنم این خطای زیر رو میدهد( البته من اون رو در محیط Qt creator ساختم نه از طریق خط فرمان)
    لطفا به عکس زیر نگاه کنید و مرا راهنمایی کنید
    با تشکر
    عکس های ضمیمه عکس های ضمیمه

  2. #2

    نقل قول: مشکل عجیب در اجرا

    معمولا به خاطر استفاده از نسخه های متفاوت dll هست.

    برخی از افرادی که چنین مشکلی داشتند، به جای مسیر C:\Qt\20xx.xx\bin از مسیر C:\Qt\20xx.xx\qt\bin استفاده کردند و مشکل برطرف شد.

  3. #3

    نقل قول: مشکل عجیب در اجرا

    با سلام
    از پاسخ شما سپاسگزارم
    من یک سوال دیگر نیز داشتم
    آیا می شود در محیط Qtcreator برنامه را به صورت STATIC ساخت که دیگر احتیاجی به Dll هایی مانند mingwm10.dll و libgcc_s_dw2-1.dll نداشته باشد آیا در قسمت option تنظیماتی برای اینکار وجود دارد
    با تشکر

  4. #4

  5. #5

    نقل قول: مشکل عجیب در اجرا

    با سلام
    من تمامی کارهایی که در سه لینک بالا گفته بود انجام دادم ولی هیچ تغییری در فایل اجرایی انجام نشد
    لطفا کمی راهنمایی کنید
    کارهایی که من انجام دادم
    1-نوشتن متن LFLAGS = -static-libgcc
    در فایل QTDIR>\qmake\Makefile.win32*

    2- نوشتن متن CONFIG += static
    در فایل pro پروژه


  6. #6

    نقل قول: مشکل عجیب در اجرا و اجرا برنامه به شکل Static بدون dll ها

    شما اصلی ترین کار برای کامپایل به شکل static را انجام ندادید. یعنی ابتدا configure و سپس کامپایل کل Qt به شکل static که چند ساعت کامپایل آن طول خواهد کشید.
    ناچار شدم برای اینکه دقیق مراحل را بنویسم، خود یک مرتبه روی سیستم جدیدم مراحل را انجام بدم و چند ساعتی کامپایل کنم!

    پس طی مراحل زیر باید بروید:
    1- برای از بین بردن وابستگی ها به mingwm10.dll یا libgcc_s_dw2-1.dll باید مورد زیر ر انجام دهید (یعنی اضافه کردن -static -static-libgcc به فایل mkspecs\win32-g++\qmake.conf )
    از طریق مطالعه این لینک

    2- برای تنظیم و کامپایل کتابخانه به شکل static، در command prompt به مسیر نصب Qt بروید و ابتدا configure و سپس nmake یا mingw32-make که حتی تا چند ساعت طول خواهد کشید.

    cd C:\Qt\2009.02\qt
    configure -static -release -no-exceptions
    سپس کامپایل وساخت static کل کتابخانه:

    mingw32-make sub-src


    اگر در آینده قصد داشتید از حالت static استفاده نکنید، فقط خط اول و دوم کافیست، ابتدا دستور زیر را اجرا کنید، سپس configure جدید در حالت -shared را اجرا کنید که دقایق یا ساعاتی طول خواهد کشید.

    nmake distclean
    configure -shared -release -no-exceptions
    3- در ویندوز به کار دیگری نیاز ندارید، با QtCreator کامپایل کنید، کتابخانه ها به شکل static اضافه می شوند.
    فقط تاجایی که می دانم در لینوکس یا کلا پلتفرم های X11 شما باید در فایل .pro پروژه کد زیر را اضافه کنید:

    CONFIG += staticlib

  7. #7

    نقل قول: مشکل عجیب در اجرا

    نقل قول نوشته شده توسط Nima_NF مشاهده تاپیک
    معمولا به خاطر استفاده از نسخه های متفاوت dll هست.

    برخی از افرادی که چنین مشکلی داشتند، به جای مسیر C:\Qt\20xx.xx\bin از مسیر C:\Qt\20xx.xx\qt\bin استفاده کردند و مشکل برطرف شد.
    کتابخانه هایی که در C:\Qt\20xx.xx\bin هست مربوط به برنامه های خود پکیج Qt SDK مثل QtCreator میشه.
    QtCreator خودش با کیوت نوشته شده اما از کتابخانه های Qt ای استفاده میکنه که با نسخه های استاندارد مورد استفادهء عموم فرق میکنن (احتمالا سفارشی شدن و غیره).
    بنابراین کاربر با C:\Qt\20xx.xx\bin کاری نداره چون این کتابخانه ها فقط برای خود برنامهء QtCreator هستن و برنامه های کاربر با کتابخانه های نسخه هایی که در مسیر دوم هست کامپایل میشن.
    آخرین ویرایش به وسیله eshpilen : جمعه 14 خرداد 1389 در 10:58 صبح

  8. #8

    نقل قول: مشکل عجیب در اجرا و اجرا برنامه به شکل Static بدون dll ها

    سلام
    منم همین چیزی که شما گفتید را انجام دادم ولی موقع کامپایل qt بعد از ۱ ساعت نوشت exit with error 1 و نفهمیدم چی نوشته دقیق
    باید چی بنویسه؟
    اینا نوشت :
    c:\Qt\2010.04\qt\lib\libQtGui.a(qapplication.o):qa  pplication.cpp:(.text+0x358a):
    undefined reference to `_imp___Z21qt_call_post_routinesv'
    c:\Qt\2010.04\qt\lib\libQtGui.a(qapplication.o):qa pplication.cpp:(.text+0x3b2f):
    undefined reference to `_imp___Z21qt_call_post_routinesv'
    c:\Qt\2010.04\qt\lib\libQtGui.a(qapplication.o):qa pplication.cpp:(.text+0x40ca):
    undefined reference to `_imp___Z21qt_call_post_routinesv'
    c:\Qt\2010.04\qt\lib\libQtGui.a(qwhatsthis.o):qwha tsthis.cpp:(.text+0x15c): unde
    fined reference to `_imp___Z21qDeleteInEventHandlerP7QObject'
    collect2: ld returned 1 exit status
    mingw32-make[2]: *** [..\..\..\bin\uic3.exe] Error 1
    mingw32-make[2]: Leaving directory `C:/Qt/2010.04/qt/src/tools/uic3'
    mingw32-make[1]: *** [release] Error 2
    mingw32-make[1]: Leaving directory `C:/Qt/2010.04/qt/src/tools/uic3'
    mingw32-make: *** [sub-uic3-sub_src_target_ordered] Error 2

    C:\Qt\2010.04\qt>

    الان هم هرچی میخوام کدم را کامپایل کنم اررور میده


    debug\qrc_resources.cpp
    g++ -static -static-libgcc -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -Wl,-subsystem,windows -o debug\project.exe object_script.project.Debug -L"c:\Qt\2010.04\qt\lib" -lmingw32 -lqtmaind -lQtScriptd -lQtSqld -lQtXmld -lQtGuid -lgdi32 -lcomdlg32 -loleaut32 -limm32 -lwinmm -lwinspool -lmsimg32 -lQtCored -lkernel32 -luser32 -lshell32 -luuid -lole32 -ladvapi32 -lws2_32
    c:/qt/2010.04/mingw/bin/../lib/gcc/mingw32/4.4.0/../../../../mingw32/bin/ld.exe: cannot find -lQtScriptd
    collect2: ld returned 1 exit status
    mingw32-make[1]: Leaving directory `W:/code-project/C++‎‎/sms'
    mingw32-make: Leaving directory `W:/code-project/C++‎‎/sms'
    mingw32-make[1]: *** [debug\project.exe] Error 1
    mingw32-make: *** [debug] Error 2
    The process "C:/Qt/2010.04/mingw/bin/mingw32-make.exe" exited with code %2.
    Error while building project project (target: Desktop)
    When executing build step 'Make'
    آخرین ویرایش به وسیله mosi20 : سه شنبه 26 مرداد 1389 در 02:23 صبح

  9. #9

    نقل قول: مشکل عجیب در اجرا و اجرا برنامه به شکل Static بدون dll ها

    یک چیزی پیدا کردم مثل اینکه این مشکل در qt 4.6.3 هست !که منم دقیقا همین ورژن را دارم
    http://www.qtcentre.org/threads/3168...tic-with-MinGw
    حالا دارم 4.7 beta را دانلود میکنم
    امیدوارم مشکلم حل بشه

  10. #10

    نقل قول: مشکل عجیب در اجرا و اجرا برنامه به شکل Static بدون dll ها

    مشکل حل نشد.
    توروخدا یک نفر کمک کنه

  11. #11

    نقل قول: مشکل عجیب در اجرا و اجرا برنامه به شکل Static بدون dll ها

    فقط از نسخه 4.7 qt برای کامپایل static استفاده کنید و برای کامپایل جهت افزایش سرعت و استفاده از تمام توان هسته های CPU از jom استفاده کنید. از نسخه 5.0.0 به بالا تست نکردم ولی 5.0.0 و 4.8.4 بدرستی کامپایل نمی شوند.

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •