когда я пытаюсь использовать отдельные * .h и * .cpp, я получаю сообщение об ошибке LINK2019 - PullRequest
0 голосов
/ 04 мая 2011

У меня есть код как

A.h
Class A{
  public:
    void FuncA();
}

A.cpp
#include "A.h"
void A::FuncA() {}

B.h
#include "A.h"

Class B{
  public:
    void FuncB();
}

B.cpp
#include "B.h"
void B::FuncB(){
  A *a = new A();
  a->FuncA();
}

Когда я пытаюсь построить этот проект, я получаю сообщение "ошибка LNK2019: неразрешенный внешний символ" public: void __thiscall A :: FuncA () "(? FuncA @ A @@ QAEXH @ Z), на который ссылается функция" public: void __thiscall B :: FuncB (void) "(? FuncB @ B @@ MAEXXZ) B.obj project"

Это делает A.obj и B.obj.

1 Ответ

1 голос
/ 04 мая 2011

Код выглядит нормально. Сначала убедитесь, что все перестроено, и что A.obj действительно отправлен компоновщику.


Ответ на комментарий

Проверьте журнал сборки в VS2008. Смотри картинку ниже:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...