2010-03-09 41 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中链接库。