0

我做了以下事情:

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

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

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

4

2 回答 2

1

在这里回答:如何将库添加到 Eclipse CDT?(没有这样的文件或目录)

@cyfur01 有最好的答案:

添加什么取决于您要包含的内容。在 Boost 的情况下,有许多只有头文件的库,并且有些库需要在静态/共享对象库中进行链接(例如,序列化)。仅标头库

对于仅头文件的库,您只需要包含所有头文件的基本目录。使用 gcc,您可以使用 -I 标志添加目录(例如,-IC:/path/to/boost_52_0)。使用 Eclipse 中的托管 makefile 项目,您可以使用 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 Settings > GCC C++ Linker > Libraries 进行设置

于 2013-08-20T14:35:45.123 回答
0

好的,所以我想通了:

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

像魅力一样工作!

于 2013-08-20T15:03:00.807 回答