gcc 静态库和动态库的使用

来源:互联网 发布:矩阵的零次方等于一吗 编辑:程序博客网 时间:2024/06/06 20:40

gcc 静态库和动态库的使用

应用程序需要连接外部库的情况下,linux默认对库的连接是使用动态库,在找不到动态库的情况下再选择静态库。

gcc test.cpp -L. -ltestlib

如果当前目录有两个库libtestlib.so libtestlib.a 则肯定是连接libtestlib.so。使用如下连接指定为连接静态库:

gcc test.cpp -L. -static -ltestlib

当对动态库与静态库混合连接的时候,使用-static会导致所有的库都使用静态连接的方式。这时需要作用-Wl的方式:

gcc test.cpp -L. -Wl,-Bstatic -ltestlib  -Wl,-Bdynamic -ltestdll

最后的-Wl,-Bdynamic表示将缺省库链接模式恢复成动态链接

注意,指定静态库连接时,如果连接到系统动态库,最后需要使用-Wl,-Bdynamic恢复动态链接。

参考原文:GCC同时使用静态库和动态库链接

0 0