ubutu系统中gcc生成.so且调用

来源:互联网 发布:java aqs 编辑:程序博客网 时间:2024/05/21 14:42

1、新建一个工程test1,并新建tets1.h文件,写入

#include "stdio.h"void a();void b();

2、新建a.c,b.c文件,并写入

#include "test1.h"void a(){printf("a is running");}
#include "test1.h"void b(){printf("b is running");}

3、编译成动态链接库:

gcc a.c b.c -fPIC -shared -o libtest1.so(-shared:指定生成动态链接库)(-fPIC:表示编译位置为独立的代码,不用将文件拷贝到进程中去,加上此段代码才是真正意义上的共享)

4、新建一个调用动态链接库的文件test2.c

#include "test1.h"int main(){a();b();}

5、将test2.c与动态链接库一起编译:

gcc test2.c -L. -ltest1 -o tets2export LD_LIBRARY_PATH=/homeldd test./test2(-L. :表示要连接的库在当前目录下-ltest:编译查找动态链接库时有隐含的命名规则,前面加lib,后面加.so
阅读全文
0 0