Linux入门 系统编程三 嵌入式开发 使用gcc制作静态库&动态库,及调用库头文件应用

本文详细介绍了如何在Linux环境下制作和使用静态库与动态库。首先,通过编写源代码,将文件编译成.o对象文件,然后使用ar命令创建静态库,使用gcc链接静态库进行测试。接着,同样过程制作动态库,但需添加-fpic选项,并使用gcc的-shared选项。动态库的使用涉及库路径的设置,可通过环境变量或修改配置文件实现。最后,提到了针对rk3568的交叉编译过程。
摘要由CSDN通过智能技术生成

一、静态库的制作与使用

生成静态的主要是有5个步骤
1、编写源代码
2、将要编译成库的源文件编译成.o文件
3、使用ar命令创建静态库
4、调用库
5、测试

静态库的命名规则:lib开头。.a结尾。lib和.a中间的称作库名。lib+库名称作库文件名

1.1 先写两个测试程序,这里使用mylib.c和test.c

mylib.c

#include <stdio.h>
#include <stdlib.h>

void mylib(void) {
	printf("this is mylib\r\n");
}

mylib.h就是为了声明一下函数便于使用头文件调用

#ifndef __MYLIB_H
#define __MYLIB_H

void mylib(void);

#endif

test

#include <stdio.h>
#include <stdlib.h>
#include "mylib.h"
i
nt main(int argv, char *argc[]) {
	mylib();
	return 0;
}

建好后:
在这里插入图片描述

1.2 生成 .o文件
gcc -c mylib.c -o mylib.o

在这里插入图片描述

1.3 生成库
ar -cr libmylib.a mylib.o

在这里插入图片描述

1.4 编译测试程序,调用库函数
gcc test.c -lmylib -L .

这里编译的程序是:test.c
-l后面跟的是库名,就是要调用哪个库
-L后面跟的是库所在的目录
在这里插入图片描述

1.5 测试

如愿打印了库中的函数:
在这里插入图片描述

二、动态库的制作与使用

动态库制作和使用的步骤
动态库也叫做分享库
1、编写源代码
2、将要编译成库的源文件编译成.o文件
3、使用gcc命令创建动态库
4、添加库路径
5、调用库
6、测试

1.1 代码还是使用以上的程序,只是拷贝了一份

在这里插入图片描述

1.2 编译成.o文件
gcc -c -fpic mylib.c -o mylib.o

在这里插入图片描述

1.3 创建动态库

gcc -shared -o libmylib.so mylib.o
在这里插入图片描述

1.4 设置库的路径

默认情况下搜索动态库的路径在/lib/和/usr/lib。

所以。
方式1、可以拷贝动态库到上面的两个目录之一下面。
方式2、添加环境变量,只有当前终端有效

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/topeet/share/SystemPrg/06

方式3、修改 /etc/ld.so.conf文件,添加生成动态库的路径到该文件中,并使用ldconfig更新一下即可。

1.5 编译测试程序,调用库函数
gcc test.c -lmylib -L .

在这里插入图片描述

1.6 测试

在这里插入图片描述

补充,编译成rk3568的可执行程序

步骤和Ubuntu下的方法类似,只是把gcc改成交叉编译器 aarch64-linux-gnu-gcc
如下:
在这里插入图片描述
开发板运行:
在这里插入图片描述

以防学习后忘记,小记一下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值