参考文章:
https://www.cnblogs.com/jiqingwu/p/linux_dynamic_lib_create.html
步骤:
1,编写源文件
2,编写接口文件
3,生成动态库
4,生成可执行文件
5,添加可以执行文件运行库查找路径
一、编写源文件
相当于函数定义
int max(int n1, int n2, int n3)
{
int max_n = n1;
max_n = max_n > n2 ? max_n : n2;
max_n = max_n > n3 ? max_n : n3;
return max_n;
}
二、编写接口文件
相当于函数声明
#ifndef __MAX_H_
#define __MAX_H
int max(int, int, int);
#endif
三、生成动态库
命令如下:
gcc -fPIC -shared -o libmax.so max.c
-fPIC表示生成与位置无关的代码,-shared表示生成动态库,动态库的名称一般定义为lib*.so
四、生成可执行文件
命令如下:
gcc -o max_test max_test.c -L. -lmax
-L.表示在当前目录下查找动态库,-l表示链接的动态库为libmax.so。
五、运行可执行文件
可执行文件在运行时,需要知道动态库的位置。定义运行时动态库的搜索路径的环境变量是LD_LIBRARY_PATH,可以暂时添加当前目录。命令如下:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:.
关于运行可执行文件的搜索路径,可以参照https://www.cnblogs.com/jiqingwu/p/linux_dynamic_lib_create.html
六、执行结果
the max number is 4