动/静态库的制作:
静态库:
1.对.c文件进行汇编处理
gcc -c file1.c
gcc -c file2.c
...
2.ar -rcs libxxxx.a *.0 (将所有.c文件打包成一个静态库)
动态库:
1.gcc -shared -fpic -o libxxxx.so *.c
注:1.系统默认安装了动态库,静态需要自己安装
#sudo yum install glibc -static
2.ldd +执行文件 可以查看该执行文件所需要的动态库
制作完后调用
静态库:
gcc main.c -L.(-L指定库的路径.当前位置) -lxxx(l是lib的缩写) -I(指定头文件)
即可生成a.out文件(执行的时候也需要告诉系统a.out所需的动态库在哪)
动态库:
gcc main.c -L.(-L指定库的路径.当前位置) -lxxx(l是lib的缩写) -I(指定头文件)
即可生成a.out文件,但是生成的a.out文件不能执行有两种方法解决:
1.将动态库移动到系统存放动态库的位置当前路径下即可(需要root权限)
然后gcc main.c -llingyun -I. 即可生成a.out且可以运行。
2.修改LD_LIBRARY_PATH的环境变量 export LD_LIBRARY_PATH=.
注:静态库可以不需要移位置,动态库需要告知系统位置或者将动态库移到系统存放动态库位置(/usr/lib)
如果说静态库和动态库都存在的情况下,默认系统首选动态库。