如何在eclipse中指定链接时使用的库版本?

时间:2014-08-04 17:59:28

标签: c++ linux eclipse

我在 Linux 上的 Eclipse Juno (服务第2版)中有 C ++ 项目。

我需要引用第三方库,但其名称包括库的版本:

  

libThirdParty.so。的 10.1

我试过关注this post。但似乎我有一个旧版本的ld,它不起作用。 (我检查了手册页)

我尝试使用图书馆的全名(路径/名称),但我不知道在哪里添加它,因为它无效。

如果没有版本,我无法创建库的符号链接。

在eclipse中,我应该在哪里引用完整的库名?还有其他方法可以引用该库吗?

2 个答案:

答案 0 :(得分:0)

在项目浏览器中选择您的项目,然后按 Ctrl + Enter 。这将弹出属性窗口。

enter image description here

然后,在C/C++ -> Settings选择Tool Settings Tab下的Linker -> Libraries下点击该按钮,添加并编写您要链接到的库名称版本。

警告:请注意,在Linux系统中存在名为 soname 的共享库,请阅读此answer以获取详细说明关于它。

编辑:评论

事情是,链接器将查找名为lib<name>.so的文件,因为您的图书馆名称为libThirdParty.so.10.1,并且不会以.so结束{&};匹配这种模式。 这不是你可以用eclipse解决的问题,这是一般的linux行为。如果您的库名是libThirdParty.10.1.so(请注意尾随的.so),那么您可以使用ThirdParty.10.1作为库eclipse字段中的库名。

Linux使用此名称约定以便更轻松地处理系统中安装的同一lib的各种版本。 您可以不使用符号链接或将库重命名为libThirdParty.10.1.so来完成您想要做的事。

答案 1 :(得分:0)

我同事帮助我解决了这个问题:

  1. 右键单击Project =&gt;属性=&gt; C / C ++ Build =&gt;设置
  2. 根据GCC C ++ Linker =&gt;其他:写出库的全名,包括库路径。类似于this post与GCC建设的指示。