参考blog:Linux中的库_linux中的wk-优快云博客
1.库是什么?
库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。就是将源代码转化为二进制格式的源代码,相当于进行了加密,别人可以使用库,但是看不到库中的内容。
2.如何使用?
用户需要同时具有头文件和库。
头文件(相当于说明书的作用,能够知道这个库能干嘛)
制作出来的库(具体的实现,存放.c、.cpp)
3.静态库:
静态库的制作:格式xxxx.a
第一步:gcc calcufuncs.c -c 生成xxx.o文件
第二步:ar rcs libcalcufunc.a calcufuncs.o xxx.o文件生成xxx.a静态库文件:
静态库使用:
gcc calculatorT.c -I ./ -lcalcufunc -L ./ -o mainProStatic
注释:-lcalcufunc -l(小写的L)是制定要用的动态库,库名砍头去尾
-I(大写的i) :是指定头文件的路径
-L:告诉gcc编译器从-L制定的路径去找静态库。默认是从/usr/lib /usr/local/lib去找
4.动态库
动态库的制作:
gcc -shared -fpic calcufuncs.c -o libcalc.so
-shared 指定生成动态库
-fpic 标准,fPIC 选项作用于编译阶段,在生成目标文件时就得使用该选项,以生成位置无关的代码。
动态库使用:
gcc calculatorT.c -I ./ -lcalc -L ./ -o mainProDy
出现上述错误时,需配置环境变量export,因为在执行程序时,动态库要临时调用,默认是从/usr/local下找。
可以指定该程序运行时候,在LD_LIBRARY_PATH 所指定的路径去找库文件
export LD_LIBRARY_PATH=库的目录 临时的只是对当前窗口。
要是永久有效,进入~/.bashrc 文件把 export LD_LIBRARY_PATH=库的目录 ,放在最后,打开新的窗口在运行。
du 可执行文件:可以查看占用内存