[デバッグソリューション]注:..該当クラスが何も出力生成&& QVTKWidget追加Q_OBJECTエラーが見つかりません

エラーのシナリオ

VS2017 + Qt5.12.0環境におけるPCL呼び出し、クラスPclVisualizerはクラスから継承QMainWindowは、クラスでPclVisualizerはで追加QVTKWidgetだけ追加し、後にQ_OBJECTコンパイル時エラーが発生します。

エラーメッセージ

1.コンパイル処理の出力

PclVisualizer.h(0):注:該当するクラスが見つかりませんでした。何も出力は生成されません。

2.コンパイル・エラーの後

1> PclVisualizer.obj:エラーLNK2001:未解決の外部シンボル"パブリック:仮想QMetaObject constの構造体* __thiscall PclVisualizer ::メタオブジェクト(無効)constは"(?メタオブジェクトPclVisualizer @@ @ @@ UBEPBUQMetaObject XZ)
1> PclVisualizer.obj:エラーLNK2001:未解決の外部シンボル"パブリックます。void *仮想__thiscall PclVisualizer :: qt_metacast(のconstのchar *)"(?qt_metacast PclVisualizer @@ @ @ Z-UAEPAXPBD)
1> PclVisualizer.obj:エラーLNK2001:未解決の外部シンボル"公共:int型仮想__thiscall PclVisualizer :: qt_metacall(列挙QMetaObject ::コール、int型、void *型*)"(qt_metacall @ PclVisualizer QMetaObject @@ @ @@ UAEHW4Call Z-HPAPAX @?)
1> PclVisualizer.obj:エラーLNK2001:できません未解決の外部シンボル"パブリック:静的構造体QMetaObjectのconstのMDIChild :: staticMetaObject"(?staticMetaObject @のMDIChild @@ 2UQMetaObject @@ B)

エラーの理由

クラスPclVisualizer PclVisualizer.hファイルは、Unicodeエンコード形式に位置しています。あなたはQtのプログラムをコンパイルするときには、Unicodeのファイル形式は、コンパイラが失敗する可能性があります。UTF-8エンコーディング形式のユニコード符号化されたファイルを変換する必要があります。

ソリューション:

上記のプロジェクトでVSは閉鎖され、Unicodeが選択し、開いたメモ帳++テキストエディタでファイルをエンコードされた「コード- >使用UTF-8エンコーディング」を、再度ファイルを保存します。VSでのプロジェクトを再開く、追加することがわかったQ_OBJECTを後にすると、正常にコンパイルして実行することができます。

公開された48元の記事 ウォン称賛65 ビュー70000 +

おすすめ

転載: blog.csdn.net/xiaolong361/article/details/89381376