문제

나는 그것을 만들려고 노력하고있다 qtestlib/tutorial1 예, 하지만 TestQString.Moc 실행할 때 파일이 생성되지 않습니다 nmake (Windows XP SP3에서 QT 4.5.2를 실행하고 있습니다).
나는 복사했다 TestQString.cpp 자습서 디렉토리에서 내 빌드 디렉토리 (C : 샌드 박스 testQString) 및 QT 명령 프롬프트에서 RAN VSVARS32.BAT 파일 MS MS Visual Studio 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 -i " qt qt" -i ".... apps qt 2009.03 qt include qtgui"-i ".... apps qt 2009.03 qt include qttest"-i ".... apps QT 2009.03 qt "-i"포함. -i ".... apps qt 2009.03 qt include activeQt"-i "debug"-i ".... apps qt 2009.03 qt mkspecs win32 -g ++"-d__gnuc__-- dwin32 testqstring.cpp -o debug testqstring.moc

g ++ -c -g -frtti -fexceptions -mthreads -wall -dunicode -dqt_largefile_support -dqt_dll -dqt_testlib_lib -dqt_gui_lib -dqt_core_lib -dqt_thread_support -i ".... ..... qt "-i"포함. " -i ".... apps qt 2009.03 qt include activeQt"-i "debug"-i ".... apps qt 2009.03 qt mkspecs win32 -g ++"-o 디버그 testQString.o TestQString.cpp

TestQString.cpp : 63 : 27 : TestQString.Moc : 그러한 파일 또는 디렉토리가 없음
nmake : 치명적인 오류 U1077 : 'c : apps qt 2009.03 mingw bin g ++. exe': 코드 '0x1'정지를 반환합니다.
nmake : 치명적인 오류 U1077 : 'c : progra ~ 1 micros ~ 3 vc bin nmake.exe': 코드 '0x2'정지를 반환합니다.

따라서 Moc.exe가 Debug/TestQString.moc를 생성하기 위해 호출되고 있음을 알 수 있지만 해당 파일은 생성되지 않습니다.

제공 할 수있는 모든 지침에 감사드립니다.

도움이 되었습니까?

해결책

당신이 사용하려고하는 것처럼 보입니다 nmake Mingw와 함께 빌드를합니다. nmake MSVC 도구입니다.

mingw와 함께 빌드를하고 싶다면 사용해야합니다. mingw32-make. MSVC로 빌드를하려면 MSVC로 구축 된 QT를 사용해야합니다 (즉, 직접 구축하거나 상용 라이센스가 있어야 함).

다른 팁

나는 moc.exe가 nmake와 함께 moc 파일을 생성하지 않았다는 문제가있었습니다. 그 이유는 makefile.debug 내부의 잘못된 moc.exe 경로였습니다.

같은 것 :

C : /QT/2009.03/qt/bin moc.exe

나는 그것을 다음으로 변경한다 :

C : qt 2009.03 Qt bin moc.exe

그리고 지금 그것은 작동합니다. ;)

불행히도 Qmake는 메뉴에서 실행하거나 솔루션/프로젝트를 재구성/청소할 때마다 MakeFiles를 생성합니다. Qmake 구성의 버그라고 생각합니다.

영구적으로 수정하려면 파일 C : myqtdir mkspecs win32-msvc2008 qmake.conf를 찾아야합니다. 다른 구성의 경우 Win32-MSVC2008을 변경해야합니다.

나를 위해 그것은 c : qt 2009.03 qt 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를 어디로 변경 해야하는지 정확히 모른다. 그러나 QT 경로는 나에게 변경되지 않으므로 매크로를 하드 정의 된 PathNames로 교체했습니다.

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

이제 MOC에는 더 이상 문제가 없습니다. 재건도 잘 작동합니다.

도움이 되었기를 바랍니다 ;)

QT IN/MINGW/BIN에 포함 된 컴파일러/도구를 사용해 보셨습니까? (내 시스템에서 QT는 C : QT 2009.03에 설치됩니다.) 지난번에 확인했을 때 QT의 비상업적 배포는 Visual Studio에서 작동하지 않습니다. 방금 QT 명령 프롬프트에서 이것을 시도해 보았습니다.

qmake -project "CONFIG += qtestlib"

qmake

mingw32-make

도움이 되었기를 바랍니다.

MOC가 생성되지 않았다고 확신합니까? 디버그 디렉토리에 살고 있으므로 #include "debug/teststring.moc"또는 추가 -idebug 컴파일러 옵션을 사용하여 #include가 필요합니다.

VC NMake와 아직 컴파일하는 경우이 버그에 대한 해결 방법이 있습니다.http://bugreports.qt-project.org/browse/qtbug-6470

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top