Linux应用开发 | 动态库
程序员文章站
2022-06-04 12:04:27
...
一、概念
二、测试代码
test.c
test.h
三、制作动态库
3.1 将c文件转换到汇编.o文件
-fPIC 意思是产生位置无关代码
3.2 创建动态库
libtest.so就是生成的动态库
四、使用动态库
4.1编写main.c
包含test.h接口文件 (头文件)
4.2 编译
编写的写法和静态库一样
-L表示库的路径 点表示当前路径
-l表示使用的库名称 注意: 不能写成libtest.a
这里报错 找不到.so文件 文件明明是有的 为啥找不到呢
因为动态库并没有被编译到可执行文件中,所以环境中必须提供库的支持
解决方法:
编译出错 解决方法
1. 把动态库拷贝到/lib下
但是这样做会污染系统库目录 不建议这样做
2. 修改LD_LIBRARY_PATH
推荐使用 不会覆盖之前的路径
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:./
然后就可以正常执行了