我有一个链接到许多库的程序。 g++
,默认情况下,更喜欢链接到共享库,即使相应的存档存在。
如果存在静态存档,我如何更改此首选项以首选静态存档而不是动态库?
注意,我使用了 -static
选项,但它会尝试为所有库查找静态存档,这不是我想要的。
最佳答案
g++ -Wl,-Bstatic -lz -lfoo -Wl,-Bdynamic -lbar -Wl,--as-needed
将 zlib
和 libfoo
链接为 static ,并将 libbar
链接为 dynamic 。 --as-needed
将丢弃任何未使用的动态库。
关于c++ - g++ 链接器 : force static linking if static library exists?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3698321/