c++ - Eclipse-CDT/C++ : Undefined reference-errors although right . o 文件被创建并传递给链接器

标签 c++ eclipse-cdt linker-errors undefined-reference

起初:我没有使用已经编译好的库。

情况是这样的:我在 eclipse CDT 中有一个 C++ 项目,它的文件夹结构如下:

project
  somefoldername
    src
    include
  library
    src
    include

somefoldername/src 和 library/src 被定义为源文件夹,somefoldername/include 以及 library/include 被定义为包含文件夹(在 C/C++ General->Paths and Symbols 下,这也会影响编译器的 -I 选项).

“library”文件夹包含我自己的代码使用的库的源代码(可以在“somefolder”中找到)。好吧,整个项目的编译工作正常,但链接崩溃与库源代码中的一大堆“ undefined reference ”错误。

虽然创建了 *.o 文件,但仍会发生 undefined reference 错误,其中应该可以找到缺少的函数 - 并且之后还会传递给链接器。

我做错了什么?

编辑:更新到当前配置和解决问题的尝试。

Edit2: 接受的答案对我有所帮助,但最大的问题似乎是“一次链接所有内容”-policy 之后是 eclipse。我去了autoconf并首先构建库,然后再将其链接到主应用程序。尽管它需要更多工作,但它是一种更清洁的方法。

最佳答案

三种可能性:

1) “未定义”符号实际上并不在您的库中

 This is unlikely, but you can verify using the "nm" Linux command

2) 您没有在 Eclipse 中正确设置库搜索路径(“dash-big-L”)

关于c++ - Eclipse-CDT/C++ : Undefined reference-errors although right . o 文件被创建并传递给链接器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8261485/

相关文章:

c++ - 如何计算立体图像的密集视差图?

c++ - for 循环批处理数据并将其丢弃在 C++ 中

ios - XCode 中的 ObjC 链接器标志

C++ 链接器提示 char* 的多个定义,但不是 std::string

具有未定义行为的 C++ 代码,编译器生成 std​​::exception

c++ - 如何判断两个源文件是否生成功能相同的代码?

在 Fedora 上的 eclipse 上配置 C/C++

c++ - 尝试索引头文件时 Eclipse CDT 崩溃

c - Eclipse 编辑器不显示函数错误,不包括枚举值

c++ - SDL 插件库未正确链接