1、什么叫做库?
它是一些经过加密的二进制文件
2、 库分为:静态库和动态库
3、 静态库
Linux下静态库的命名规则
命名规则:例如libMytest.a
lib
xxx 库的名字
.a 结尾格式
静态库的生成步骤:
原材料:源代码文件.c .cpp
将.c文件生成.o文件、
gcc hello.c -c
将.o打包
打包需要工具ar
ar rcs 静态库的名字 原材料
例如:ar rcs libMytest.a hello.o
打包给别人使用只要把生成的库文件libMytest.a和原材料的头文件一起给别人就可以了
4、 静态库的使用
4.1 包含要 使用的头文件,然后调用里面的函数,由此编译好的源文件。
编译源文件的命令:例如:gcc main.c -I ./include/ -L ./lib -llibMytest -o hello
其中:-L:用于指定库的路径
-l:用于指定库的名字
5、 动态库的制作和使用
Linux下的动态库一般是以.so结尾
命名规则:libxxx.so
制作步骤:
将源文件生成.o文件
gcc hello.c -c -fpic(fPIC)
打包
gcc -shared hello.o -o libxxx.so
6、 动态库的使用
头文件hello.h
动态库libxxx.so
gcc main.c -I ./ -lxxx -o app
7、 动态库加载失败
命令:ldd app
ldd:是用来查看应用程序app需要哪些文件
使用环境变量
临时设置
在终端:
export LD_LIBRARY_PATH=动态库的路径:$LD_LIBRARY_PATH
永久设置:
用户级别:
~/.bashrc
配置完成:
重启客户端
source ~/.bashrc
系统级别:
/etc/profile
source/etc/profile
/etc/ld.so.cache文件列表
找到一个配置文件
/etc/ld.so.conf
把动态库的绝对路径添加到文件中去
执行一个命令:
sudo ldconfig -v