以实现加法功能的函数为例子:
主函数main.c:
#include <stdio.h>
#include"add.h"
int main()
{
int a =0;
int b =0;
printf("请输入两个数的值\n");
scanf("%d",&a);
scanf("%d",&b);
add(x,y);
printf("两个数的和为:%d\n",add(x,y));
}
需要封装的功能函数:add.c
int add(int a,int b)
{
return a+b;
}
使用动态库时需要包含头文件 add.h:
int add(int a,int b);
那么如何让使用动态库呢?
输入指令:gcc -shared -fpic add.c -o libadd.so,输入完成按下回车键,就可以得到与位置无关的动态库文件libadd.so.
怎么编译呢?
输入指令 gcc mian.c -ladd -L ./(注意编译动态库时去头去尾) -o jiafa,按下回车后虽然生成了可执行文件jiafa,但是在运行时会出现找不到动态库类似的问题,为解决这些问题,提供两个参考方案:
方法1:将动态库文件拷贝到/usr/lib 及linux系统库下,输入指令:
sudo cp libadd.so /usr/lib,按下回车后就可以运行可执行文件jiafa了
方法2:添加环境变量
输入指令:export LD_LIBRARY_PATH="/home/orangepi/runku" ,按下回车后就可以执行可执行文件jiafa,得到运行结果。