静态库与动态库
静态库的制作和使用
- 编写库文件源代码和头文件。
- 将所有需要做成库的源文件生成目标文件:
gcc -c {filename}.c -o {filename}.o
- 用 ar 工具将要做成库的目标文件打包:
ar rcs lib{库名}.a {filename-1}.o ... {filename-n}.o
- 将使用库的源文件与库文件一起编译:
gcc {主文件}.c lib{库名}.a -o
动态库的制作和使用
- 编写库文件源代码和头文件。
- 生成位置无关的目标文件:
gcc -c {filename}.c -o {filename}.o -fPIC
- 制作动态库:
gcc -shared -o lib{库名}.so {filename-1}.o ... {filename-n}.o
- 编译主文件的源文件:
gcc {filename}.c -o {filename}.o -l {库名} -L {库文件路径}
- 为了让程序在运行的时候能找到动态库需要进行以下处理:
- 修改环境变量
LD_LIBRARY_PATH
,将库文件的路径加入 - 或者修改
/etc/ld.so.conf
配置文件,将库文件的路径加入,并使用ldconfig -v
使配置文件生效
- 修改环境变量