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

来源:互联网 发布:kmp算法next计算例题 编辑:程序博客网 时间:2024/05/31 00:39
在写程序时,所写程序会使用到已有的动态库或者静态库。下文是本人所用电脑在使用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),编译器优先加载动态库。
阅读全文
0 0