1

ファンキーな複数定義エラーが発生します。インクルード構造は次のとおりです。

MAIN -> VM -> BACKEND

メインには、バックエンドを含む vm が含まれます。

バックエンドに3 つのグローバルchar *ポインターがあり、複数の定義エラーが発生するのはメンバーです。

vm.cppmain.cppおよびmoc_vm.cpp(Qtを使用しています)で複数の定義を取得します。

残りのソースでポインターを外部として宣言しようとしましたが、役に立ちませんでした。すべてのプリプロセッサ ガードが配置されていますが、明らかに 1 か所でしか定義されていないため、なぜエラーが発生するのかわかりません...

何か案は?

編集:これは奇妙です。BACKEND を MAIN に含めることができ、問題はありません。チェーンが MAIN>VM>BACKEND の場合にのみ、エラーが発生します。

4

3 に答える 3

0

ポインタを静的に変更して、外部にリンクされないようにすることで解決しました。とにかく、それらは他のソースではアクセスされません。結局、それはリンケージの問題でした...

于 2013-08-11T20:58:45.483 に答える