1.静态库:在编译连接时,将库内容直接合并到最终的可执行文件中(相当于中间文件.o的集合)
Windows下:.lib
Linux下:.a,即不可执行的普通文件
链接:gcc -o main main.c -L. -lstatic
运行./main
2.共享库(动态库):在连接阶段仅仅是将使用哪个共享库设置到最终的可执行文件中,在程序运行时,才会单独加载动态库
Windows下:.dll
Linux下:.so,即不可执行的可执行文件
链接:gcc -o main main.c -L. -ldynamic
运行./main
设置环境变量:
export LD_LIBRARY_PATH=. (.当前目录) 绝对路径
& echo $LD_LIBRARY_PATH
注:echo:查看
3.工程管理工具makefile:
VPATH=绝对路径
filrlist=list.o ....
main:$(filrlist)
gcc -o main $(filelist)
$(filrlist):
clean:
*.o
注:空格部分必须是 Tab键
VPATH为变量
vpath为关键字