共享库和静态库之间的Eclipse链接器顺序

时间:2015-04-13 10:37:14

标签: c++ linux eclipse linker eclipse-cdt

我想在eclipse CDT(RHEL 6.3)中编译可执行文件。我想链接几个库 - 其中一些是静态的,一些是共享的。由于链接器,顺序很重要。

我在settings -> linker -> libraries下编写了共享库 为了避免使用.so优先于.a库的链接器属性,我想编写静态库的完整路径,因此我无法在settings -> linker -> libraries中编写它 - 因为它会获得-l选项 - 这不是正确的。我必须在settings -> linker -> miscellaneous

中写下来

编写我的静态库时,我害怕链接器获取.so库,因为某些库可能位于/usr/lib路径中,因此链接器会更喜欢.so那里的lib(即使我告诉他在哪里查找我的静态库-L),会有两个库,在不同的路径中具有相同的名称,一个.so,另一个{{ 1}},所以链接器将选择.a

我不想从.so删除库。

现在出现问题
对于优化,库需要依赖于顺序(来自链接器),eclipse尝试首先链接/usr/lib,然后链接miscellaneous(或相反) - 但我是顺序在"更高的分辨率",有一些共享库依赖于静态库,反之亦然。

这个问题有解决方案吗? 我可以在其他地方编写静态库,以便它与共享库一致吗?

0 个答案:

没有答案