VS+QT LNK 2001で解析できない外部シンボルQMetaObjectの問題が発生
VS+Qt開発中に新たにQtClass(Q_OBJECTで定義されたクラスがある場合)が追加された場合、コンパイルに失敗し、LNK 2001のエラーが発生する可能性があります.これは、IDEが自動的に新しいクラスにmoc_を生成していないためです.XXXX.cppファイルによるものです.ネット上ではmocコマンドを使って解決すると多くのブログに書かれていますが、そうなると、複数の人が開発すれば、あなたのパソコンで変わることができます.moc_XXXX.cpp私たちは一般的に提出しないので、他の人もこのような状況に遭遇する可能性があります.では、このような現象の原因を探してみましょう.このように一度解決すればokです.
まず工事対応のxxxxを開きましょう.vcxproj(notepad++を使用して修正を開くことができます)は、他の正常なQtヘッダファイルと比較すると、この異常なヘッダファイルプログラムが普通のC++classと見なしていることがわかります.
上记を见て、あなたの新しいQt类は普通のC++类だと勘违いして、だから対応するmocファイルを生成することはできなくて、それでは私达は少し直すことができて、C++普通の类の部分として削除して、これをQtMocの中に参加して
これはまだ終わっていないので、工事対応のxxxxを修正しなければなりません.filtersファイル:
フォーマットは少し変わっていますが、ここでは詳しく説明しません.以下のように修正します.
これで、修正が完了し、再コンパイルすればいいのです
まず工事対応のxxxxを開きましょう.vcxproj(notepad++を使用して修正を開くことができます)は、他の正常なQtヘッダファイルと比較すると、この異常なヘッダファイルプログラムが普通のC++classと見なしていることがわかります.
Qt
上记を见て、あなたの新しいQt类は普通のC++类だと勘违いして、だから対応するmocファイルを生成することはできなくて、それでは私达は少し直すことができて、C++普通の类の部分として削除して、これをQtMocの中に参加して
:
これはまだ終わっていないので、工事対応のxxxxを修正しなければなりません.filtersファイル:
フォーマットは少し変わっていますが、ここでは詳しく説明しません.以下のように修正します.
Header Files
Header Files
Header Files
Header Files
これで、修正が完了し、再コンパイルすればいいのです