c++ - g++ 链接器 : force static linking if static library exists?

标签 c++ c linker g++ static-libraries

我有一个链接到许多库的程序。 g++,默认情况下,更喜欢链接到共享库,即使相应的存档存在。

如果存在静态存档,我如何更改此首选项以首选静态存档而不是动态库?​​

注意,我使用了 -static 选项,但它会尝试为所有库查找静态存档,这不是我想要的。

最佳答案

g++ -Wl,-Bstatic -lz -lfoo -Wl,-Bdynamic -lbar -Wl,--as-needed

zliblibfoo 链接为 static ,并将 libbar 链接为 dynamic 。 --as-needed 将丢弃任何未使用的动态库。

关于c++ - g++ 链接器 : force static linking if static library exists?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3698321/

相关文章:

带有位图字体的 C 头文件

c++ - 为什么 ld 链接器允许使用相同的方法定义多个类?

C++20 string/u8string 和 string_view/u8string_view 之间的转换

c++ - 在 MARSS 实现中编译 SCONS 失败

c - "for"循环出错,我认为是内存问题

c - 不同程序中的linux动态共享内存

c++ - 在可执行文件中链接 CUDA 文件时出现 cuSparse 函数的多个定义错误

c++ - 将 undefined reference 错误限制为仅直接依赖

c++ - 嵌套类可以有指向外部类的成员指针吗?

c++ - 获取字符串流的适当大小,以便我可以将其放入缓冲区