编译动态库命令:
gcc -shared -fPIC -o xxx.so xxx.c
showone.c:
#include<stdio.h>
#include"myshow.h"
int myshow()
{
printf("11111111111111\n");
}
showtw.c:
#include<stdio.h>
#include"myshow.h"
int myshow()
{
printf("222222222222222\n");
}
编译好之后,再把main函数编译为可执行文件:
#include <stdio.h>
#include"myshow.h"
int main()
{
while(1)
{
myshow();
sleep(2);
}
}
(随便链接了一个库)(-L只是在编译的时候制定库路径)
然后运行:
可以看到所用的库不一样,运行结果也不一样。
还可以用gcc命令直接把动态库的路径编译到可执行文件中。
方法是编译中加-Wl,rpath=xxx(路径)
这样就可以直接运行