2010-03-09 81 views
2

我使用Eclipse伽利略3.5與CDT 6.0未定義引用問題在Eclipse

我有在包括位於C頭文件中的一個問題:\ CS106 ...我搜索谷歌和發現,我不得不去項目屬性> C/C++常規>路徑和符號和GNU C++我已經添加路徑C:\ CS106

和Eclipse是現在能夠找到他們,但我得到的另一個問題是,當我嘗試構建一個簡單的程序,該程序使用位於c:\ cs106中的「simpio.h」中定義的函數,並且我已經包含在程序的頂部#include「simpio.h」中,但它給了我一個錯誤

**** Internal Builder is used for build **** 
g++ -IC:\cs106 -O0 -g3 -Wall -c -fmessage-length=0 -osrc\CS106.o ..\src\CS106.cpp 
g++ -oCS106.exe src\CS106.o 
src\CS106.o: In function `main': 
C:/Users/User/workspace/CS106/Debug/../src/CS106.cpp:8: undefined reference to `GetInteger()' 
collect2: ld returned 1 exit status 
Build error occurred, build is stopped 
Time consumed: 986 ms. 

我google了一下,得到的是我必須告訴鏈接器.lib文件伴隨着頭文件。在我的情況下,提供的.lib文件是(CS106CPPLib.lib),我檢查了VS 2008的項目文件,並看到他們在項目設置文件 下添加了以下語句VCLinkerTool: AdditionalDependencies =「 c:\ cs106 \ CS106CPPLib.lib winmm.lib「

所以我想我必須在eclipse中包含這個CS106CPPLib.lib winmm.lib,但是我無法弄清楚我應該在哪裏做這件事。如果有人能幫助我,我會很感激。

如果您需要更多信息,請回復我。

感謝

+0

當你評論你在VC++中使用winmm.lib時,我會假設它是用VC++編譯的。你確定你的這個庫是一個對象格式,與gnu ld兼容嗎?可能你需要用GNU編譯器進行編譯。但我不確定這是否有必要。 – harper 2012-10-19 10:54:14

+0

Hi @Ahmed;通過點擊提交支持提案http://area51.stackexchange.com/proposals/75879/stackoverflow-in-arabic?referrer=cV6PAm2AvYR0Q5jaRllwhg2 – 2014-12-14 13:42:03

回答

0

您需要在您的項目在項目設置的地方 定義明確圖書館的名字......如果你已經這樣做了......那功能是不存在的圖書館......也許你需要添加另一個函數的定義在其中的lib文件...

+0

感謝您的回覆。我想告訴你,函數定義已經在c:\ cs106 \ CS106CPPLib.lib winmm.lib中定義,因爲它在Visual Studio中工作,但我想在eclipse中使用它,因爲我非常喜歡eclipse環境。 – Ahmed 2010-03-10 06:13:23

+0

它清楚地表明,它無法在任何地方找到GetInteger()函數... 如果你沒有明確地鏈接到eclipse環境中的winmm.lib文件,請明確鏈接它... 並在庫路徑中使用絕對路徑比相對路徑 這些可能會解決問題 – 2010-03-10 07:51:29

+0

謝謝隊友,但我無法弄清楚如何做到這一點..我是一個絕對的初學者你能告訴我該怎麼做..一步一步.. 謝謝 – Ahmed 2010-03-10 08:56:24

1

它看起來像一個鏈接器錯誤,它與標題無關。你現在需要在eclipse中鏈接庫。