0

ProjectAAA.obj : エラー LNK2001: 未解決の外部シンボル "public: __thiscall X::ClassEvent::ClassEvent(unsigned int)" (??0ClassEvent@X@@QAE@I@Z)

boost::shared_ptr<ClassEvent> bcfEvent(new ClassEvent((unsigned int) 10));

この LINK エラーを定義ClassEvent::ClassEvent(unsigned int)しましたが、修正方法がわかりません。

どんな提案でも大歓迎です。

ありがとうございました

より詳しい情報:

1>ProjectAAA.obj : エラー LNK2019: 未解決の外部シンボル "public: __thiscall APP::X::ClassEvent::ClassEvent(unsigned int)" (??0ClassEvent@X@APP@@QAE@I@Z) 関数で参照"private: class std::vector,class std::allocator > > __thiscall APP::X::ProjectAAA::GenerateEvents(class std::map > > const &)" (?GenerateEvents@ProjectAAA@X@APP@@ AAE?AV?$vector@V?$shared_ptr@VClassEvent@X@APP@@@boost@@V?$allocator@V?$shared_ptr@VClassEvent@X@APP@@@boost@@@std@@@std @@ABV?$map@VDate@APP@@IUEventAttributesMapCompare@ProjectAAA@X@2@V?$allocator@U?$pair@$$CBVDate@APP@@I@std@@@std@@@5@@ Z)

これで、エラーを完全に分離できました。

1>ProjectAAA.obj : エラー LNK2019: 未解決の外部シンボル "public: __thiscall APP::X::ClassEvent::ClassEvent(unsigned int)" (??0ClassEvent@X@APP@@QAE@I@Z) 関数で参照"private: void __thiscall APP::X::ProjectAAA::TestGenerateEvents(void)" (?TestGenerateEvents@ProjectAAA@X@APP@@AAEXXZ)

4

3 に答える 3

1

問題はClassEvent.cpp、ソリューションに2つのファイルがあることです。VC ++がソリューションをコンパイルすると、すべてのobjファイルが1つのディレクトリに出力されるため、2つのClassEvent.objファイルが生成されます。後でコンパイルされるcppは、前者を上書きします。これにより、最初のシンボルのシンボルが失われ、リンカーから見えなくなります。

この問題を修正するには、ファイルの1つのプロパティを開き、[C / C ++]->[出力ファイル]->[オブジェクトファイル名]を選択して、衝突しない値(などClassEvent2.obj)に変更します。

これはVisualStudioのバグだと思いますが、最後の4つのバージョンでは対処されていないため、今後も続く可能性があります。

于 2012-10-10T19:29:24.697 に答える
1

複数のテストの後、解決策を見つけました。

チームの誰かが ClassEvent.CPP をプロジェクトから除外します!!!

于 2012-10-10T19:42:19.210 に答える