从函数到库
2024年8月27日小于 1 分钟
实现C函数到库文件
# test.c
#include<stdio.h>
void test(){
printf("this is test ... \n")
}
# print.c
#include<stdio.h>
void print(){
printf("this is test ... \n")
}
# 测试 xx.c
void test();
void print();
int main(){
test();
print();
return 0;
}
生成动态库
# 动态库一般是 lib 开头 , .so 结尾
gcc -fPIC -shared test.c -o libtest.so
gcc -fPIC -shared print.c -o libprint.so
# 两函数放在一个动态库中
gcc -fPIC -shared test.c print.c -o libxxt.so
# 拷贝库到lib目录,或者修改配置
sudo cp libprint.so libtest.so /lib
sudo cp libxxt.so /lib
# 编译测试 xx.c (需提供库的名字以及库路径)
gcc xx.c -o main -lprint -ltest -L .
# 运行
$ ./main
this is test ...
this is print ...
生成静态库
gcc -c test.c
gcc -c print.c
# 用ar命令打包静态库(静态库一般 lib开头, .a结尾)
ar -crv libtest.a test.o
ar -crv libprint.a print.o
# 编译测试 xx.c (需 -static 选项 和提供库的名字以及库路径)
gcc xx.c -o main -static -lprint -ltest -L .
# 运行
$ ./main
this is test ...
this is print ...