linux下生成动态库和使用

动态链接库
提供给外部使用时,我们只会提供库以及接口,因此学习生成动态库很有必要。这里介绍简单的lib库生成。

步骤:
1、通过编译多个源文件,直接将目标代码合成一个.o 文件。
2、通过创建动态链接库libmyhello.so ,使得 main 函数调用 hello 函数时可调用动态链接库。
命令:

1.  gcc –Wall -g -fPIC –c xxx.c -o xxx.o 
/* 
* -fPIC(Position Independent Code)   编译生成代码与位置无关  
* -g -Wall 供调试使用,不是必须的 
    */  
2.  gcc -shared xxx.o -o libxxx.so
    /*生成libxxx.so链接库*/
/* 
* -shared 为链接库  让编译器知道是要编译一个共享库 
    */
3.  copy libxxx.so  到/usr/local/lib
/* 
* 将libxxx.so库复制一份到/usr/local/lib路径下 
    */
4.  gcc -o xxxx xxxx.c -L. -lxxx
/* 使用libxxx.so库 */
/*
*-L.: 在当前路径下寻找.so文件 
 *-lxxx: 要链接这个libxxx.so文件 
*/  
5.  ./xxxx

例如(本次自己使用)

gcc -Wall -g  -fPIC -c dhcpv4.c -o dhcpv4.o
gcc -shared dhcpv4.o -o libdhcpv4.so
copy libdhcpv4.so  到/usr/local/lib
gcc -o dhcpv4_main dhcpv4_main.c -L. -ldhcpv4
./dhcpv4_main

参考链接

linux下生成静态库和动态库:https://blog.csdn.net/ddreaming/article/details/53096411
Linux-(C/C++)动态链接库生成以及使用(libxxx.so):https://blog.csdn.net/qq_33850438/article/details/52014399
Linux环境编译动态库和静态库总结:https://www.cnblogs.com/secondtonone1/p/5524351.html

猜你喜欢

转载自blog.csdn.net/AJDJ26/article/details/81224331
今日推荐