2011-07-24 47 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