Linuxc基础 二十

静态库

静态库 要被包含到源程序中的库
优点 运行速度快
缺点 占用系统资源比较多
使用的场合 对时间要求很高的场合

静态库的制作:
1、把所有的源程序(.c文件)制作成目标文件(.o 文件)
gcc -c mul.c -o mul.o
gcc -c sub.c -o sub.o
gcc -c add.c -o add.o

2、使用工具将所有 .o 打包生成静态库文件(静态库的后缀名是 .a )
ar rcs lib库名.a mul.o sub.o add.o

3、编译的时候 gcc 库包含的相关命令
-L 库文件所在的目录
-l(L的小写) 包含要添加到程序中的库,后面跟库名即可
-I(i的大写) 指定头文件所在路径

gcc 2.c -L/home -lmylib -I…/

动态库制作

1、将要作为动态库的文件做成目标文件文件(.o)
	注意和生成普通目标文件的区别
	gcc -c   xxx.c  -o xxx.o   -fPIC

2、将目标文件编译成动态库,后缀名是 .so
	gcc -shared  -o lib库名.so  xxx.o 

3、编译的时候需要把动态库加上
gcc src/main.c -L./lib -lmylib -o bin/a.out

4、运行时候会找不到动态库文件,解决办法:

	1、临时办法,只在当前终端有效,终端重启以后就没用了
		在终端输入以下命令:
		export LD_LIBRARY_PATH=库所在目录的绝对路径
		
	2、修改终端的配置文件  ~/.bashrc
		§ vim  ~/.bashrc
		§ 把  export LD_LIBRARY_PATH=库所在目录的绝对路径 
		添加到文件的最后一行
		§ 重启终端或者运行命令 source ~/.bashrc  使用配置文件生效
	
	3、将动态库放到系统默认目录下 ===>  /usr/lib
	
	4、配置文件  /etc/ld.so.conf 
		§ vim /etc/ld.so.conf
		§ 将库文件的绝对路径添加到库的最后一行
        使配置文件生效:ldconfig -v

猜你喜欢

转载自blog.csdn.net/qq_41936758/article/details/84794598