静态库和动态库同时链接

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

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

 gcc –o test test.c –Wl,-Bstatic -lcrypto –Wl,-Bdynamic –lsecurec 

此外还要注意系统的运行库使用动态链接的方式,所以当动态库在静态库前面链接时,必须在命令行最后使用动态链接命令才能正常链接:

 gcc –o test test.c –Wl,-Bdynamic -lsecurec –Wl,-Bstatic lcrypto –Wl,-Bdynamic 

注意:尾部的-Wl,-Bdynamic表示 将缺省库链接模式恢复成动态链接。

原文地址:https://www.cnblogs.com/tongyishu/p/13187585.html