-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 回答