ubuntu18.04
目标:
探究同名动态库在不同库目录时的链接顺序
思路:
创建3个源文件,函数名称相同,函数定义不同;
分别创建同名动态库,并分别放在/lib,/usr/lib,/usr/local/lib位置下;
创建demo,调用函数,查看输出,验证链接顺序。
实施
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;
}`
原文:https://www.cnblogs.com/z-r-q/p/14853941.html