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

直接告诉gcc静态链接库

直接告诉gcc静态链接库

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

3 回答

?
凤凰求蛊

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

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


查看完整回答
反对 回复 2019-10-24
?
12345678_0001

TA贡献1802条经验 获得超5个赞

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

查看完整回答
反对 回复 2019-10-24

添加回答

举报

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