VS+Qt手动生成moc文件

一个包含Q_OBJECT宏的头文件,必定有一个对应的moc文件。

如果编译时,发现一个头文件有Q_OBJECT宏,但却没找到其对应的moc文件,会报无法解析的外部符号,如下:

手动生成

如果使用命令的话,需要用到moc.exe,这个文件位于Qt的bin路径下,比如我的:C:\Qt5.6.0\5.6\msvc2013\bin

一般安装Qt后会将这个目录加到环境变量中,所以,直接在CMD中调用即可。

命令格式为:

moc xxx.h -o moc_xxx.cpp

比如,在文件夹下,按住shift,右键,在此处打开命令窗口,输入:

moc ../FaceReco.h -o moc_FaceReco.cpp

这里是将当前执行目录 上一层目录的FaceReco.h生成moc_FaceReco.cpp放在当前执行目录下。

生成后,需要在工程中包含此cpp文件。

 

当然,如果需要手动生成的moc文件较多,可以新建一个txt文本,将所有命令写入进去,一条命令一行,回车键换行,保存后将txt后缀修改为bat,双击运行即可。

 

另外,可参考:VS+Qt5不自动生成moc文件的解决方法

你可能感兴趣的:(Qt,手动生成moc)