2012-01-12 82 views
6

现在我正在使用eclipse CDT作为我的C/C++应用程序,但是当我连接外部库时出现问题,它在运行时无法正确加载,即使通过将库源文件附近的文件,我给了库路径,它的名字是正确的。C++:Eclipse中的外部库CDT

项目目录:(.cpp文件..)

  1. 包括(.h文件)
  2. LIB(libbozorth3.a,LSFMatcher.a)

我想链接静态库与我的应用程序我按照此步骤:

  1. project-> properties-> general-> path和symbols-> include目录路径,和库(bozorth3.a,LSFMatcher.a),并添加库路径。
  2. ,也是我加入同一个库中的连接部分也

当我建立它显示一个错误的程序 找不到-lbozorth3.a 找不到-lLSFMatcher.a

所以我需要将外部库添加到c/C++应用程序的正确步骤。

+0

你考虑:http://stackoverflow.com/questions/8370809/how-to-add-a-library-to-eclipse-c-project? – Dyonisos 2012-01-12 13:34:26

回答

12

我通常配置

  1. (所需的编图)
  2. 运行搜索路径(-rpath链接选项)

(请参阅下面的图像库搜索路径并将链接器标志中的路径交换为您在库搜索路径中使用的路径)

Library Search path Linker options for runtime search path

1

您应该使用-Wl,-rpath=${workspace_loc}/Liball而不是-Wl,-rpath,${workspace_loc}/Liball

也在库-l选项下添加库如eg。为libgcc.a添加仅gcc

+0

这不是一个完整的答案。这取决于FSaccilotto提供的答案。也许你应该将它转移到评论中,以便他可以纠正他的帖子,或者你应该添加更多的细节给你的,所以这是一个完整的答案。 – Dzyann 2014-07-22 16:28:15

0

您应该注意圆括号中的内容:其他选项(-Xlinker [option])。

传递选项的方式不同。而不是使用:

-Wl,-rpath,'${ProjDirPath}/../../system/lib' 

您必须使用:

-rpath '${ProjDirPath}/../../system/lib' 

也就是说,去掉 “轮候册,” 并替换第二 “” 用 “”(空格)。

enter image description here

enter image description here