静态库和动态库同时链接

Posted tongyishu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了静态库和动态库同时链接相关的知识,希望对你有一定的参考价值。

在应用程序需要链接外部库的情况下,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表示 将缺省库链接模式恢复成动态链接。

以上是关于静态库和动态库同时链接的主要内容,如果未能解决你的问题,请参考以下文章

linux下的动态链接库和静态链接库到底是个什么鬼?动态链接库的编译与使用

dll和lib(包括静态链接库和与dll同时生成的lib)

关于动态库和静态库的问题。

C语言里面的动态库和静态库

动态链接库和静态链接库的区别简述

静态链接库和动态链接库