直接告诉gcc静态链接库

使用它-Wl,-Bstatic来告诉gcc我要静态链接的库对我来说很奇怪。毕竟我告诉gcc直接有关与库(链接的所有其他信息-Ldir-llibname)。

是否可以直接告诉gcc驱动程序应静态链接哪些库?

澄清:我知道,如果某个库仅存在于静态版本中,它将在不使用的情况下使用它-Wl,-Bstatic,但是我想暗示gcc更喜欢静态库。我也知道直接指定库文件将与它链接,但是我更喜欢保持包含静态库和动态库的语义相同。


智慧大石
浏览 759回答 3
3回答

凤凰求蛊

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

12345678_0001

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