Ela*_*ich 116 linker gcc dynamic-linking static-libraries
我觉得很奇怪-Wl,-Bstatic,以便告诉gcc我想要静态链接哪些库.毕竟我gcc直接告诉所有关于链接库的信息(-Ldir,-llibname).
是否可以直接告诉gcc驱动程序哪些库应该静态链接?
澄清:我知道如果某个库只存在于静态版本中,它将在没有它的情况下使用它-Wl,-Bstatic,但我想暗示gcc更喜欢静态库.我也知道直接指定库文件会链接它,但我更喜欢保持包含静态和动态库的语义相同.
小智 166
当然可以-l:代替使用-l.例如-l:libXYZ.a要链接libXYZ.a.注意lib写出来,而不是-lXYZ自动扩展到libXYZ.
osg*_*sgx 117
您可以在链接命令中添加.a文件:
gcc yourfiles /path/to/library/libLIBRARY.a
Run Code Online (Sandbox Code Playgroud)
但这不是与gcc驱动程序交谈,而是使用ld链接器作为选项-Wl,anything.
当你告诉gcc或ld"-Ldir -lLIBRARY"时,链接器将检查库的静态和动态版本(你可以看到一个进程-Ldir -lLIBRARY).要更改已检查的库类型的顺序,您可以使用-Wl,--verbose和-Wl,-Bstatic.这是gnu LD的手册页:http://linux.die.net/man/1/ld
要将程序与lib1,lib3动态和lib2静态链接,请使用此类gcc调用:
gcc program.o -llib1 -Wl,-Bstatic -llib2 -Wl,-Bdynamic -llib3
Run Code Online (Sandbox Code Playgroud)
假设ld的默认设置是使用动态库(它在Linux上).
| 归档时间: |
|
| 查看次数: |
163960 次 |
| 最近记录: |