2011-07-24 112 views
0

我在Visual Studio 2008中编译并得到这个错误。我研究了联系错误,但我仍然不确定它是什么。这是扑克游戏的完成代码,所以我宁愿不发布代码。有人可以为我翻译这个错误信息吗?C++链接错误

错误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> >)”([email protected]@[email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@@Z)OH-DLL.obj

+0

'betFold(double)',你可以弄明白吗? – Stan

回答

3

你的功能void flopAction(std::string arg)使用了被引用,并宣布在一些头的功能betFold(double),但未被执行,以便链接能够找到它。

+0

OK betFold由void betFold(double BetSize)声明; 并且它被定义在相同的标题文件作为 空隙BetFold(双BetSize)进一步向下 { //代码 } 链接器找到在该标头的所有其它功能声明的相同的方式。任何线索,为什么这是特别的原因? – Max

+1

也许试试'void betFold(double BetSize){'? – marc

+0

你能告诉我什么使链接器能够找到一个函数? – Max

3

这意味着你有声明这种方法,但没有定义它。或者至少链接器找不到定义,或者是因为它位于没有引用的库中,或者是因为它位于不属于构建过程的对象文件(源文件)中。

0

听起来像你忘了指定属于* .dll的* .lib文件。你可以在你的项目属性页面 - >配置属性 - >链接器 - >输入下编辑列表,记住要为调试和发布配置执行此操作。

并请试着从像跆拳道等:)

-1

此外,您还可以检查您的签名(函数声明)短语来避免,所以它仅包含类型在它的参数列表,而定义(内部。 cpp文件),它包含类型和参数名称。对于例如,

在.h文件,其中声明坐:

void myfunc(int, char*); 

和.cpp文件,其中定义位于:

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

我在大学学过这个,但不确定Dev C++是否支持它,很久以前就放弃了这一点,只是在当时使用了Borland。

希望这有助于。 谢谢。

+0

VS2008不关心链接时的参数名称。 – Yakk