كيو تي moc.exe لا يولد * ملف .moc
سؤال
وأنا أحاول لبناء <م> qtestlib / tutorial1 سبيل المثال م>، لكن testqstring.moc م> لا يتم إنشاء ملف عند تشغيل nmake
(أنا على التوالي كيو تي 4.5.2 على نظام التشغيل Windows XP SP3).
أنا نسخ <م> testqstring.cpp م> من الدليل التعليمي إلى الدليل بناء بلدي (<م> C: \ الرمل \ testqstring م>) ومن ركض موجه الأوامر كيو تي vsvars32.bat الملف من MS بلدي البصرية ستوديو 8 التثبيت لإضافة متغيرات البيئة VS.
ووفقا للالبرنامج التعليمي، ويجب تشغيل:
> qmake -project "CONFIG += qtestlib"
> qmake
> nmake
وعندما أفعل، والإخراج من nmake
هو:
وC: /Apps/Qt/2009.03/qt/bin \ moc.exe -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_TESTLIB_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT من أنا ".... \ تطبيقات \ كيو تي \ 2009.03 \ كيو تي \ تشمل \ QtCore "من أنا" .... \ تطبيقات \ كيو تي \ 2009.03 \ كيو تي \ تشمل \ QtGui "من أنا" .... \ تطبيقات \ كيو تي \ 2009.03 \ كيو تي \ تشمل \ QtTest "من أنا" .... \ تطبيقات \ كيو تي \ 2009.03 \ كيو تي \ تشمل "من أنا". " من أنا ".... \ تطبيقات \ كيو تي \ 2009.03 \ كيو تي \ تشمل \ ActiveQt" من أنا "التصحيح" من أنا ".... \ تطبيقات \ كيو تي \ 2009.03 \ كيو تي \ mkspecs \ Win32 و-ز ++" -D__GNUC__ - DWIN32 testqstring.cpp -o التصحيح \ testqstring.moc
وز ++ -c -g -frtti -fexceptions -mthreads سور الصين -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_TESTLIB_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT من أنا ".... \ تطبيقات \ كيو تي \ 2009.03 \ كيو تي \ تشمل \ QtCore" من أنا ".... \ تطبيقات \ كيو تي \ 2009.03 \ كيو تي \ تشمل \ QtGui" من أنا ".... \ تطبيقات \ كيو تي \ 2009.03 \ كيو تي \ تشمل \ QtTest" من أنا ".... \ تطبيقات \ كيو تي \ 2009.03 \ كيو تي \ "تشمل" من أنا ". من أنا ".... \ تطبيقات \ كيو تي \ 2009.03 \ كيو تي \ تشمل \ ActiveQt" من أنا "التصحيح" من أنا ".... \ تطبيقات \ كيو تي \ 2009.03 \ كيو تي \ mkspecs \ Win32 و-ز ++" تصحيح -o \ testqstring.o testqstring.cpp
وtestqstring.cpp: 63: 27: testqstring.moc: لا يوجد ملف أو دليل
NMAKE: خطأ فادح U1077: 'C: \ تطبيقات \ كيو تي \ 2009.03 \ مينغو \ بن \ ز ++ EXE.': رمز الإرجاع "0x1"
إيقاف.
NMAKE: خطأ فادح U1077: 'C: \ PROGRA ~ 1 \ MICROS ~ 3 \ VC \ BIN \ nmake.exe': عودة كود "0x2"
إيقاف.
وهكذا، أستطيع أن أرى أن يطلق عليه اسم moc.exe لتوليد التصحيح / testqstring.moc، ولكن يتم إنشاء هذا الملف أبدا.
وشكرا لك على أي وجميع التوجيهات التي يمكن أن تقدم.
المحلول
ويبدو وكأنه كنت تحاول استخدام nmake
للقيام بناء مع مينغو. nmake
هو أداة MSVC.
إذا كنت تريد أن تفعل بناء مع مينغو يجب استخدام mingw32-make
. إذا كنت تريد أن تفعل بناء مع MSVC يجب استخدام كيو تي بنيت مع MSVC (وهو ما يعني لديك لبناء بنفسك أو الحصول على ترخيص تجاري).
نصائح أخرى
وكان لي المشكلة أن moc.exe لم تولد أي وزارة التجارة ملفات مع NMAKE. وكان السبب مسار moc.exe خطأ داخل Makefile.Debug.
وشيء من هذا القبيل:
وC: /Qt/2009.03/qt/bin \ moc.exe
وأنا تغييره إلى:
وC: \ كيو تي \ 2009.03 \ كيو تي \ بن \ moc.exe
والآن يعمل. ؛)
وUnfortunally كماكي سوف تولد makefiles في كل مرة تقوم بتشغيل فإنه من القائمة أو إعادة بناء / تنظيف الحل / مشروع. أعتقد أنه من خلل في التكوين كماكي.
لإصلاحه بشكل دائم لديك للعثور على الملف C: \ MyQtDir \ mkspecs \ Win32 و-msvc2008 \ qmake.conf. لالتكوينات الأخرى لديك لتغيير إلى Win32 msvc2008.
وبالنسبة لي كان في C: \ كيو تي \ 2009.03 \ كيو تي \ mkspecs \ Win32 و-msvc2008 \ qmake.conf
وابحث عن "QMAKE_MOC" العبارة. سوف تجد بعض الخطوط مثل هذا:
QMAKE_MOC = $$[QT_INSTALL_BINS]\moc.exe
QMAKE_UIC = $$[QT_INSTALL_BINS]\uic.exe
QMAKE_IDC = $$[QT_INSTALL_BINS]\idc.exe
وQT_INSTALL_BINS هو المسار الذي يبدو أن أكون مخطئا. الفواصل الدليل لا تزال '/' ولكن ينبغي أن تكون '\'. في هذه اللحظة أنا لا أعرف بالضبط حيث لدي لتغيير QT_INSTALL_BINS. إلا أن مسار كيو تي لم تتغير بالنسبة لي لذلك أنا استبدال الماكرو اسم الدليل يصعب تعريفه:
QMAKE_MOC = C:\Qt\2009.03\qt\bin\moc.exe
QMAKE_UIC = C:\Qt\2009.03\qt\bin\uic.exe
QMAKE_IDC = C:\Qt\2009.03\qt\bin\idc.exe
والآن لا توجد مشاكل مع وزارة التجارة بعد الآن. سوف يعيد بناء تعمل بشكل جيد جدا.
ويساعد هذا الأمل.)
هل حاولت استخدام مترجم / الأدوات المضمنة مع كيو تي في / مينغو / بن؟ (على نظام بلدي، يتم تثبيت كيو تي في C: \ كيو تي \ 2009.03.) آخر مرة راجعت، والتوزيع غير التجاري للكيو تي لن يعمل مع Visual Studio. لقد حاولت هذه من الأمر كيو تي الفوري وأنه يعمل.
qmake -project "CONFIG += qtestlib"
qmake
mingw32-make
وآمل أن يساعد هذا.
وهارون أنت متأكد لا يتم إنشاء وزارة التجارة؟ فهي تعيش في الدليل التصحيح، لذلك سوف تحتاج إما ل# تشمل "تصحيح / teststring.moc" أو تتضمن # مع خيار إضافي مترجم -IDebug.
في حالة بعد ترجمة مع VC NMAKE هناك حلا لهذا الخطأ هنا: http://bugreports.qt-project.org/browse/QTBUG-6470