首页 > 系统服务 > 详细

Linux_动态库链接顺序

时间:2021-06-06 00:51:52      阅读:14      评论:0      收藏:0      [点我收藏+]

ubuntu18.04

  1. 目标:
    探究同名动态库在不同库目录时的链接顺序

  2. 思路:
    创建3个源文件,函数名称相同,函数定义不同;
    分别创建同名动态库,并分别放在/lib,/usr/lib,/usr/local/lib位置下;
    创建demo,调用函数,查看输出,验证链接顺序。

  3. 实施

position_lib.c:
#include <stdio.h>
void test_link_order()
{
printf("I am dll under /lib\n");
}

position_usr_lib.c:
#include <stdio.h>
void test_link_order()
{
printf("I am dll under /usr/lib\n");
}

position_usr_local_lib.c:
#include <stdio.h>
void test_link_order()
{
printf("I am dll under /usr/local/lib\n");
}

`gcc position_lib.c -fPIC -shared -o libtestlinkorder.so`
`sudo mv libtestlinkorder.so /lib`

`gcc position_usr_lib.c -fPIC -shared -o libtestlinkorder.so`
`sudo mv libtestlinkorder.so /usr/lib`

`gcc position_usr_local_lib.c -fPIC -shared -o libtestlinkorder.so`
`sudo mv libtestlinkorder.so /usr/local/lib/`

`#include <stdio.h>
int main()
{
 test_link_order();
 return 0;
}`
  1. 结果
    技术分享图片
    技术分享图片
    技术分享图片

Linux_动态库链接顺序

原文:https://www.cnblogs.com/z-r-q/p/14853941.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!