【问题标题】:Eclipse: Add external lib for c project Not workingEclipse:为c项目添加外部库不工作
【发布时间】:2013-08-22 15:48:35
【问题描述】:

我做了以下事情:

  1. 创建新的 c 项目(使用现有代码的 Makefile 项目)
  2. 添加了我的 Makefile 抱怨的构建变量
  3. 现在我的源 .c 文件抱怨 #include 文件,因为它不知道 lib 文件夹在哪里,我尝试将 lib 文件夹添加到库路径(不起作用)。

如何将我的项目链接到外部 lib 文件夹,以便我的 .c 源文件可以读取 #include 所需的 .h 文件?

我将库路径添加到路径和符号->包含但当我返回项目时,它只显示根文件夹,其中没有任何内容。我是否还必须添加每个单独的 .so lib 文件?

【问题讨论】:

标签: c eclipse library-path


【解决方案1】:

在这里回答:How do you add libraries to Eclipse CDT? (No such file or directory)

@cyfur01 有最佳答案:

添加的内容取决于您要添加的内容。如果是 Boost,有许多仅头文件的库,还有一些 需要在静态/共享对象库中链接的库 (例如,序列化)。仅标头库

对于只有头文件的库,你只需要包含基本目录 的所有头文件。使用 gcc,您可以使用 -I 添加目录 标志(例如,-I C:/path/to/boost_52_0)。使用托管的 makefile 项目 在 Eclipse 中,您可以使用 Properties > C/C++ Build

完成相同的操作

设置 > 工具设置 > GCC C++ 编译器 > 目录静态/共享对象库

对于静态/共享对象库,您必须指定两个选项:

-l --> The name of the library, less the 'lib' prefix and the file suffix (e.g., libboost_serialization.dll -> boost_serialization
-L --> The directory to look for the library file in. This is only needed if the library is on a non-standard path.

正如@Chris 指出的,对于托管的 makefile 项目,这两个 可以通过 Properties > C/C++ Build > Settings > Tool 设置选项 设置 > GCC C++ 链接器 > 库

【讨论】:

    【解决方案2】:

    好吧,我想通了:

    (1) 一开始我有一个 source.c 和一个 MAKEFILE (2)新建c工程(Makefile Project with Existing Code) (3) MAKEFILE 抱怨一个变量,所以我将它添加到环境变量中 (4)#include 文件抱怨,所以我像这样添加了外部库 (a) 我找到了我的库路径,发现 /lib 之前有一个文件夹叫 include (b) 包含文件夹有一个头文件列表 (c) 所以我添加了包含文件夹的路径而不是路径和符号包含下的 lib 文件夹

    像魅力一样工作!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-20
      • 1970-01-01
      • 2012-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-09
      • 2017-02-26
      相关资源
      最近更新 更多