您的位置:首页 > 运维架构 > Linux

linux下g++链接动态库与静态库相关问题

2017-08-24 18:16 351 查看
在写程序时,所写程序会使用到已有的动态库或者静态库。下文是本人所用电脑在使用g++链接动态库或者静态库过程中的一些矛盾测试结果,以作备忘也供有缘人进行参考。

1、若加载的两个动态库中都包含相同的函数,可执行程序会根据编译时链接的动态库的先后顺序,优先使用先链接库的函数。如liba.so与libb.so中都有函数c,若编译时链接顺序为-lb -la,则可执行程序会使用b库中的c程序。

2、编译器链接库的顺序可使用ldd查看,该命令所列出的动态库顺序与编译链接顺序相同。

3、编译器会自动往链接库追加前缀lib及后缀.a或者.so。如-ltest,链接库名为libtest.so或者libtest.a。

4、在动态库和静态库都存在的情况下,(如libtest.so,libtest.a,链接库方式都为-ltest),编译器优先加载动态库。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐