Ошибка связи C ++ - PullRequest
       28

Ошибка связи C ++

0 голосов
/ 24 июля 2011

Я компилирую в Visual studio 2008 и получаю эту ошибку. Я исследовал ошибку связи, но все еще не уверен, что это такое. Это законченный код для игры в покер, поэтому я бы не стал публиковать этот код. Может кто-нибудь перевести это сообщение об ошибке для меня?

ошибка LNK2019: неразрешенный внешний символ "void __cdecl betFold(double)" (? BetFold @@ YAXN @ Z), указанный в функции "void __cdecl flopAction(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >)" (?flopAction@@YAXV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) OH-DLL.obj

Ответы [ 4 ]

3 голосов
/ 24 июля 2011

Ваша функция void flopAction(std::string arg) использует функцию betFold(double), на которую ссылаются и которая объявляется в некотором заголовке, но не реализована, чтобы компоновщик мог ее найти.

3 голосов
/ 24 июля 2011

Это означает, что вы объявили этот метод, но не определили его. Или, по крайней мере, компоновщик не может найти определение, либо потому, что он находится в библиотеке, на которую вы не ссылались, либо потому, что он находится в объектном файле (исходном файле), который не является частью вашего процесса сборки.

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

Кроме того, вы можете проверить свою подпись (объявление функции), чтобы она содержала только тип в своих списках параметров, а внутри определения (файл .cpp) она содержала как тип, так и имена параметров. Например,

в файле .h, где находится объявление:

void myfunc(int, char*);

и в файле .cpp, где находится определение:

void myfunc(int num, char* name)
{
 //
}

Я узнал об этом раньше в своем колледже, но не уверен, что Dev C ++ поддерживает это, давно оставил это, просто используя Borland в то время.

надеюсь, это поможет. спасибо.

0 голосов
/ 24 июля 2011

Звучит так, будто вы забыли указать файл * .lib, принадлежащий * .dll. Вы можете редактировать список на страницах свойств проекта -> Свойства конфигурации -> Компоновщик -> Ввод, не забудьте сделать это для конфигурации отладки и выпуска.

И, пожалуйста, попробуйте воздержаться от таких фраз, как wtf и т. Д.)

...