我正在尝试构建qtestlib/tutorial1 1示例,但是当我运行testqstring.moc (在Windows SP3上运行QT4.5.2)时,不会生成nmake文件。
我将testqstring.cpp从教程目录复制到构建目录(C:\sandboxes\testqstring),并从Qt命令提示符从我的MS 8安装中复制vsvars32.bat文件,以添加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"....\Apps\Qt\2009.03\qt\include\QtCore“-I....\Apps\Qt\2009.03\qt\include\QtGui-I....\Apps\Qt\2009.03\qt\包含“-I"....\Apps\Qt\2009.03\qt\include”-I".“-I"....\Apps\Qt\2009.03\qt\include\ActiveQt”-I“调试”-I“.\Apps\qt\2009.03\qt\mkspecs\win32 32-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"....\Apps\Qt\2009.03\qt\include\QtCore“-I”-I“"....\Apps\Qt\2009.03\qt\include“-I.”-I"....\Apps\Qt\2009.03\qt\include\ActiveQt“-I”调试“-I”.\Apps\qt\2009.03\qt\mkspecs\win32 32-g++“-o debug\testqstra.o testqstring.cpp”
testqstring.cpp:63:27: testqstring.moc:没有这样的文件或目录
致命错误U1077:'C:\Apps\Qt\2009.03\mingw\bin\g++.EXE‘:返回代码'0x1’停止。
致命错误U1077:'C:\PROGRA~1\MICROS~3\VC\BIN\nmake.exe‘:返回代码'0x2’停止。
因此,我可以看到,moc.exe正在被调用以生成调试/testqstring.moc. but,但从未生成该文件。
感谢您所能提供的一切指导。
发布于 2009-08-29 21:49:02
看起来,您正在尝试使用nmake来使用MinGW进行构建。nmake是一个MSVC工具。
如果要使用MinGW进行构建,则必须使用mingw32-make。如果您想使用MSVC进行构建,则必须使用使用MSVC构建的Qt (这意味着您必须自己构建它或拥有商业许可证)。
发布于 2009-11-29 18:45:51
我的问题是moc.exe没有用nmake生成任何moc文件。原因是Makefile.Debug内部的一个错误的Makefile.Debug路径。
类似于:
C:/Qt/2009.03/qt/bin\moc.exe
我将其改为:
C:\Qt\2009.03\qt\bin\moc.exe
现在起作用了。;)
不幸的是,qmake将在每次从菜单运行makefile或重新构建/清理解决方案/项目时生成makefile。我认为这是qmake配置中的一个bug。
要永久修复它,您必须找到文件C:\MyQtDir\mkspecs\win32 32-msvc2008\qmake.conf。对于其他的信任,您必须更改win32 32- have 2008。
对我来说是在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.exeQT_INSTALL_BINS是一条似乎是错误的道路。目录分隔符仍然是'/‘,但应该是'\’。目前,我还不知道该在哪里更改QT_INSTALL_BINS。但是qt路径对我来说不会改变,所以我用硬定义的路径名代替了宏:
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不再有问题了。重建也会很好。
希望这会有所帮助;)
发布于 2009-08-29 14:22:21
您试过使用Qt在/mingw/bin中包含的编译器/工具吗?(在我的系统中,Qt安装在C:\Qt\2009.03中。)上次我检查的时候,Qt的非商业发行版将不适用于Visual。我只是在Qt命令提示符下尝试了一下,结果成功了。
qmake -project "CONFIG += qtestlib"
qmake
mingw32-make希望这能有所帮助。
https://stackoverflow.com/questions/1351350
复制相似问题