2013-06-01 3 views
-1

Как я уже послал несколько вопросов о LNK 2019, я столкнулся с той же проблемой с куском кода, который я не понимаю, что происходит:ошибка LNK2019: неразрешенный внешний символ «общественность: __thiscall

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() 
{ 
} 

Может кто-нибудь помочь мне с этой ошибкой? Что мне не хватает?

+3

Почему этот маркированный матлаб? –

+0

«Что мне не хватает?» - ответил ответчик. – kotlomoy

+0

@kotlomoy Я обнаружил, что задавать вопросы о компиляторе бесполезным делом. –

ответ

0

Я вижу в вашем исходном вопросе, что RTI3.cpp является #including "RTIFederate.cpp". Это не рекомендуется. После разделения исходных файлов для компиляции, если у вас все еще есть ошибки в ссылках, я бы рекомендовал использовать инструменты VS dumpbin.exe и undname.exe. Dumpbin может показать вам, где ваш конструктор RTIFedAmb определяется и ссылается (obj-файлы), а также раскрывает любые проблемы с оформлением (вызов конвенции, связь и т. Д.). Undname может помочь вам понять и исправить эти расхождения.

Смежные вопросы