linux下生成动态库和使用

xiaoxiao2021-03-01  43

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

转载请注明原文地址: https://www.6miu.com/read-4200352.html

最新回复(0)