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        

    
    
    


            


    


上记を见て、あなたの新しいQt类は普通のC++类だと勘违いして、だから対応するmocファイルを生成することはできなくて、それでは私达は少し直すことができて、C++普通の类の部分として削除して、これをQtMocの中に参加して

    
    
    
    


これはまだ終わっていないので、工事対応のxxxxを修正しなければなりません.filtersファイル:
フォーマットは少し変わっていますが、ここでは詳しく説明しません.以下のように修正します.

    
        Header Files
    
    
        Header Files
    
    
        Header Files
    
    
        Header Files
    

これで、修正が完了し、再コンパイルすればいいのです