我在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
答案 0 :(得分:3)
这意味着您已声明此方法但未对其进行定义。或者至少链接器无法找到定义,因为它位于您未引用的库中,或者因为它位于不属于构建过程的对象文件(源文件)中。
答案 1 :(得分:3)
您的函数void flopAction(std::string arg)
使用在某些标头中引用和声明的函数betFold(double)
,但未实现,以便链接器能够找到它。
答案 2 :(得分:0)
听起来好像忘了指定属于* .dll的* .lib文件。您可以编辑项目属性页面下的列表 - &gt;配置属性 - &gt;链接器 - &gt;输入,记得为Debug和Release配置执行此操作。
请尽量避免像wtf等短语:)
答案 3 :(得分:-1)
此外,您可以检查您的签名(函数声明),以便它只包含其中的类型参数列表,而在定义(.cpp文件)中,它包含类型和参数名称。例如,
在声明所在的.h文件中:
void myfunc(int, char*);
并在定义所在的.cpp文件中:
void myfunc(int num, char* name)
{
//
}
我之前在大学里学到了这一点,但不确定Dev C ++是否支持它,很久以前就把这些东西留了下来,当时只使用Borland。
希望这会有所帮助。 感谢。