-1

以前にLNK 2019についていくつか質問を送ったので、何が起こっているのか理解できないコードで同じ問題に直面しています。

RTIFederate.cpp

#include "RTIFedAmb.h"
#include "RTIFederate.h"

....

this->fedamb = new RTIFedAmb(); <- ERROR ! LNK 2019

RTIFedAmb.h

class RTIFedAmb : public NullFederateAmbassador
{
public:
    // methods //
    RTIFedAmb();
    virtual ~RTIFedAmb() throw();
}

ファイルRTIFederate.h

class RTIFederate
{
public:
    RTIambassador *rtiamb;
    RTIFedAmb     *fedamb;
}

RTIFedAmb.cpp

#include "RTIFedAmb.h"
using namespace rti1516e;
using namespace std;


//----------------------------------------------------------------------
//                                       CONSTRUCTORS
//----------------------------------------------------------------------
RTIFedAmb::RTIFedAmb()
{

}

RTIFedAmb::~RTIFedAmb() throw()
{
}

誰でもこのエラーで私を助けることができますか? 何が欠けていますか?

4

1 に答える 1

0

あなたの元の質問で、RTI3.cpp は #include "RTIFederate.cpp" であることがわかります。これはお勧めできません。ソース ファイルをコンパイル用に分離した後もリンク エラーが発生する場合は、VS ツールdumpbin.exeundname.exe. Dumpbin を使用すると、RTIFedAmb コンストラクターが定義および参照されている場所 (obj ファイル) を表示できるだけでなく、装飾の問題 (呼び出し規約、リンケージなど) を明らかにすることもできます。Undname は、これらの不一致を理解し、修正するのに役立ちます。

于 2013-06-01T23:35:41.390 に答える