C ++ ошибка связи неразрешенный внешний символ - PullRequest
0 голосов
/ 06 марта 2012

У меня есть проект, который включает файлы из другого проекта.Я получаю ошибки при связывании ...

public "неразрешенный внешний символ" public: _ cdecl classA :: classA (void "(?? () classA @@ QEAA @ XZ), на который есть ссылки вфункция "class classA * _cdecl functionB (char const *)" (? functionB @@ YAPEAVClassA @@ PEBD @ Z) ...

и другие 125 ошибок того же типа (послеконструктор, который является ошибкой, которую я только что перечислил, каждая функция из класса, который я использую, упоминается в одной из ошибок ссылки).
Путь для включения файлов второго проекта включен в мою таблицу свойств., сам по себе, строит нормально.
Я попытался добавить этот проект в свое решение и добавить его в качестве зависимости. Не помогло. Я попытался добавить dll, который он создает в вводе проекта - linker -.Не помогает.
В свойствах конфигурации для библиотеки времени выполнения задано значение /MTd.
. Я даже пытался добавить extern "C" перед моим включением. Никакой помощи.
Я пытался построить ихс Debug или Release, x64 или Win32. Я предпочитаю Release x64 bно я возьму что угодно.
Не могли бы вы мне помочь - скажите, что я делаю не так, или где искать решение этой проблемы?Большое спасибо.

Ответы [ 2 ]

0 голосов
/ 06 марта 2012

Я обнаружил, что мои зависимости в Link-Input были удалены из-за того, что я не указал явно, что у меня могут быть зависимости в окне свойств.После изменения листа свойств я наконец смог создать dll.

0 голосов
/ 06 марта 2012

Когда вы создаете проект, от которого зависит ваш, он должен создавать как lib, так и dll.Вам нужно связать эту библиотеку с вашим проектом.Смотрите эту ветку для скриншота того, как связать библиотеку в вашем проекте.

...