为了账号安全,请及时绑定邮箱和手机立即绑定

直接告诉gcc静态链接库

直接告诉gcc静态链接库

ITMISS 2019-12-11 09:08:15
使用它-Wl,-Bstatic来告诉gcc我要静态链接的库对我来说很奇怪。毕竟我告诉gcc直接有关与库(链接的所有其他信息-Ldir,-llibname)。是否可以直接告诉gcc驱动程序应静态链接哪些库?澄清:我知道,如果某个库仅存在于静态版本中,它将在不使用的情况下使用它-Wl,-Bstatic,但是我想暗示gcc更喜欢静态库。我也知道直接指定库文件将与它链接,但是我更喜欢保持包含静态库和动态库的语义相同。
查看完整描述

3 回答

?
森林海

TA贡献2011条经验 获得超2个赞

当然可以使用-l:代替-l。例如-l:libXYZ.a与链接libXYZ.a。请注意lib所写的内容,而不是将-lXYZ其自动扩展为libXYZ


查看完整回答
反对 回复 2019-12-12
?
慕容708150

TA贡献1831条经验 获得超4个赞

变体1 /path/to/library/libLIBRARY.a需要编写完整的路径,变体2 -Wl,-Bstatic -llib2 -Wl,-Bdynamic只是很长,并添加了2个额外的选项,并假定默认模式为Bdynamic,而接受的变体3 -l:libXYZ.a很短并且可以正常工作。这三种方法在很多情况下都可以使用,而链接静态程序时,变体2可能无法使用。据我了解,lib的实际链接步骤在所有变体中都是相同的

查看完整回答
反对 回复 2019-12-12
  • 3 回答
  • 0 关注
  • 300 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信