目标模块是按照可重定位地址办法生成

Linux下动态库文件的拓展名为".so"ShareObject按照约好,

一、库文件及测验文件代码

库文件及测验文件地点目录:/root/so/

1.库文件名:myfirstso.c

#includ

voidmyfunct

{

printf"thiisashareobject\n";

}

2.测验文件名:test.c

#includ

char*argv[]intmainintargc.

{

myfunct;

return0;

}

动态库的编译办法编译库文件myfirstso.c:

[root@mgtso]#gcc-fPIC-share-olibmyfirstso.somyfirstso.c

会在/root/so/下生成动态库文件:libmyfunction.so假如编译成功。

编译生成动态库的命令为:gcc-fpic-share-olibmyfunction.somyfunction.c

-fp使输出的目标模块是按照可重定位地址办法生成的

-share指定把对应的源文件生成对应的动态连接库文件。

三、动态库的测验办法

编译测验文件test.c:

[root@mgtso]#gcc-otesttest.c/root/so/libmyfirstso.so

成功编译后。运转test生成test文件。

[root@mgtso]#./test

thiisashareobject

gcc-otesttest.c/root/so/libmyfirstso.so最终一个参数指定所连接库文件的绝对途径。本例中库文件的绝对途径为:/root/so/libmyfirstso.so假如直接写相对途径会有过错。其间。

当然。能够先将生成的库文件复制至/usr/lib/下,假如想从体系的库文件途径(一般体系函数库的坐落/usr/lib下)

,含泪播种的人一定能含笑收获。

目标模块是按照可重定位地址办法生成

相关文章:

你感兴趣的文章:

标签云: