kum*_*mar 57 c c++ linker g++ static-libraries
我有一个链接到许多库的程序.g++
默认情况下,即使存在相应的存档,也更喜欢链接到共享库.
如果存在静态存档,如何将此首选项更改为优先于静态存档而不是动态库?
注意,我使用了-static
选项,但它试图找到所有库的静态存档,这不是我想要的.
小智 70
g++ -Wl,-Bstatic -lz -lfoo -Wl,-Bdynamic -lbar -Wl,--as-needed
Run Code Online (Sandbox Code Playgroud)
将链接zlib
和libfoo
静态,以及libbar
动态.--as-needed
将删除任何未使用的动态库.
当您只想将一个或两个库与其余库(包括系统库)静态链接为动态时,通常更容易通过其全名引用静态库.也就是说,而不是使用-l
并-L
获得g ++从它找到的库中解析库,simpy将库的完整路径作为输入添加.使用上面的g ++命令,将main.o
应用程序主程序链接到静态libz和libfoo以及动态libbar和libglib等:
g++ main.o /usr/lib/libz.a /usr/lib/libfoo.a -lbar
Run Code Online (Sandbox Code Playgroud)
编辑8月17日:我刚刚跳过这个答案,详细介绍并提供了另一种方法(-l:
)来直接指定库.
归档时间: |
|
查看次数: |
52956 次 |
最近记录: |