C++ 共享库和静态库之间的Eclipse链接器顺序
我想在EclipseCDT(RHEL6.3)中编译一个可执行文件。我想链接两个库——其中一些是静态的,一些是共享的。由于链接器,顺序很重要 我在C++ 共享库和静态库之间的Eclipse链接器顺序,c++,linux,eclipse,linker,eclipse-cdt,C++,Linux,Eclipse,Linker,Eclipse Cdt,我想在EclipseCDT(RHEL6.3)中编译一个可执行文件。我想链接两个库——其中一些是静态的,一些是共享的。由于链接器,顺序很重要 我在settings->linker->libraries下编写共享库 为了避免链接器属性优先于.so而不是.a库,我想写静态库的完整路径,所以我不能在设置->链接器->库中写它,因为它会得到-l选项,这是不正确的。我必须在设置->链接器->杂项中写入它 在编写静态库时,我害怕链接器获取.so库,因为某些库可能位于/usr/lib路径中,因此链接器会从那里选
settings->linker->libraries
下编写共享库为了避免链接器属性优先于
.so
而不是.a
库,我想写静态库的完整路径,所以我不能在设置->链接器->库中写它,因为它会得到-l
选项,这是不正确的。我必须在设置->链接器->杂项中写入它
在编写静态库时,我害怕链接器获取.so
库,因为某些库可能位于/usr/lib
路径中,因此链接器会从那里选择.so
库(即使我会告诉他在哪里使用-L
查找我的静态库,但将有两个库,在不同的路径中使用相同的名称,一个.so
和另一个.a
,因此链接器将选择.so
我不想从/usr/lib
中删除库
现在开始解决问题:
对于优化,库需要按照依赖关系的顺序(从链接器),eclipse尝试首先链接杂项
,然后链接库
(或相反)-但为了达到“更高的分辨率”,有些共享库依赖于静态库,反之亦然
这个问题有解决办法吗?
我可以在另一个地方写静态库,这样就可以与共享库保持一致吗