用CMake將Qt、VTK和ITK整合后,打開解決方案后添加新類時運行會出現“n個無法解析的外部命令”的錯誤。
原因是新建的類未能生成moc文件,解決辦法是:
1.右鍵 要生成moc文件的.h文件,打開屬性->常規->項類型改為自定義生成工具。
2.在新生成的選項中,填上相關內容:
具體如下:
命令行:"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp"
說明:Moc%27ing ImageViewer.h... //.h文件填要編譯的。
輸出:.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp
附加依賴項:$(QTDIR)\bin\moc.exe;%(FullPath)
3.此時右鍵 .h文件編譯,即可在GeneratedFiles\debug文件夾下生成moc文件,拖入Grenerated目錄下,即可。
關於moc文件,查看:qt中moc的作用
簡單來說:moc是QT的預編譯器,用來處理代碼中的slot,signal,emit,Q_OBJECT等。
moc文件是對應的處理代碼,也就是Q_OBJECT宏的實現部分。
XX.ui文件生成ui_XX.h:
當前路徑命令行輸入uic XX.ui -o ui_XX.h