c++链接错误

C++ linkage error

本文关键字:错误 链接 c++      更新时间:2023-10-16

我在Visual studio 2008中编译并得到此错误。我研究了联动错误,但我仍然不确定它是什么。这是完成代码的扑克游戏,所以我宁愿不张贴代码。有人能帮我翻译一下这个错误信息吗?

错误LNK2019:在函数"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)中引用的未解析的外部符号"void __cdecl betFold(double)"(?betFold@@YAXN@Z) o - dll .obj

您的函数void flopAction(std::string arg)使用函数betFold(double),该函数在某些头中被引用和声明,但未实现,以便链接器能够找到它。

这意味着您已经声明了这个方法,但没有定义它。或者至少链接器找不到定义,要么因为它在一个库中,你没有引用,要么因为它在一个目标文件(源文件),不是你的构建过程的一部分。

听起来好像忘记指定*了。属于*.dll的Lib文件。您可以在项目属性页->配置属性->链接器->输入下编辑列表,记住在调试和发布配置中这样做。

请尽量避免使用诸如wtf等短语:)

另外,您可以检查您的签名(函数声明),以便它只包含其参数列表中的类型,而在定义(.cpp文件)中,它包含类型和参数名称。例如,

声明所在的.h文件:

void myfunc(int, char*);

和定义所在的.cpp文件中:

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

我以前在大学里学过这个,但不确定Dev c++是否支持它,很久以前就离开了这个东西,当时只是用Borland。

希望这对你有帮助。谢谢。

相关文章: