Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/125.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 共享库和静态库之间的Eclipse链接器顺序_C++_Linux_Eclipse_Linker_Eclipse Cdt - Fatal编程技术网

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

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路径中,因此链接器会从那里选

我想在EclipseCDT(RHEL6.3)中编译一个可执行文件。我想链接两个库——其中一些是静态的,一些是共享的。由于链接器,顺序很重要

我在
settings->linker->libraries
下编写共享库
为了避免链接器属性优先于
.so
而不是
.a
库,我想写静态库的完整路径,所以我不能在
设置->链接器->库中写它,因为它会得到
-l
选项,这是不正确的。我必须在
设置->链接器->杂项中写入它

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

我不想从
/usr/lib
中删除库

现在开始解决问题:
对于优化,库需要按照依赖关系的顺序(从链接器),eclipse尝试首先链接
杂项
,然后链接
(或相反)-但为了达到“更高的分辨率”,有些共享库依赖于静态库,反之亦然

这个问题有解决办法吗? 我可以在另一个地方写静态库,这样就可以与共享库保持一致吗