基本表现:
1>InitializeBuildStatus: 1> 正在对“release\filter_meshing.unsuccessfulbuild”执行 Touch 任务。 1>CustomBuild: 1> MOC meshfilter.h 1> 系统找不到指定的路径。 1>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(151,5): error MSB6006: “cmd.exe”已退出,代码为 3。 1> 1>生成失败
原因:使用了Q_OBJECT宏,但是MOC.exe的path没有设置正确,导致的问题。
解决方案:
1、选择菜单栏【工具】【选项】【项目和解决方案】【生成并运行】,选择【msbuild项目生成项目详细信息】选项,下拉列表中选择详细,即可查看编译的详细过程, 目测楼主是因为MOC.exe不在系统path路径中或者meshfilter.h不在包含路径中。
2、具体编译:
1)右键单击.h文件选择properties,Custom Build Step->General,在command line里输入用moc.exe编译.h文件并生成.cpp的命令
比如,假设moc.exe所在路径为C:\Qt\bin,并且在.h目录下建立了一个moc文件夹用于存放生成的.cpp文件,则需要在commond line里输入
C:\Qt\bin\moc.exe "$(InputPath)" -o "$(InputDir)\moc\moc_$(InputName).cpp"
2)在outputs里输入$(InputDir)\moc\moc_$(InputName).cpp
3)编译.h文件
4)将moc文件夹里的.cpp文件加入source files
5)编译工程