QT遇到unresolved external symbol "public: virtual struct QMetaObject解決方案
阿新 • • 發佈:2019-01-04
出現這個錯誤的原因是沒有為標頭檔案生產moc檔案,在類定義包含Q_OBJECT巨集都是必需有這個moc檔案的。
右擊該標頭檔案,屬性,General的Item Type選擇Custom Build Tool,確定。再重新進入General介面,點選Custom Build Tool,
Command Line輸入:
"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DQT_DLL -DQT_CORE_LIB -DQT_GUI_LIB -DQT_WIDGETS_LIB -DQT_NETWORK_LIB "-I.\GeneratedFiles " "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtNetwork" "-IE:\Program Files (x86)\Visual Leak Detector\include"
Outputs輸入:
.\GeneratedFiles\$(ConfigurationName)\moc _%(Filename).cpp
additional dependecies輸入:
$(QTDIR)\bin\moc.exe;%(FullPath)
儲存。重新生成解決方案。
這時候GeneratedFiles資料夾下應該多出一個moc_xxxx.cpp。在專案GeneratedFiles手動新增進剛才生成的檔案。再重新生成解決方案即可。