动态库 gcc makefile
1、、编译过程
2、动态链接、静态链接
动态链接:您可以动态地将程序和共享库链接并让 Linux 在执行时加载库(如果它已经在内存中了,则无需再加载)。
动态加载:有选择地调用库中的函数
3、gcc
预处理 gcc -E test.c -o test.i 或 gcc -E test.c
编译生成汇编 gcc -S test.i -o test.s
汇编生成机器码 gcc -c test.s -o test.o
链接生成目标文件 gcc test.o -o test
尽可能产生多告警信息 gcc -Wall illcode.c -o illcode
-I 包含文件路径
-L 链接库路径
-static 使用静态库链接
静态库编译:编译为.o后使用ar
动态库编译:gcc -shared -o libmystack.so mystack.o
4、makefile
target... : prerequisites ...
<tab>command
example:
objects = main.o kbd.o command.o display.o \ insert.o search.o files.o utils.o edit : $(objects) cc -o edit $(objects) $(objects) : defs.h kbd.o command.o files.o : command.h display.o insert.o search.o files.o : buffer.h .PHONY : clean clean : rm edit $(objects)
可以使用include包含其他makefile
工作方式:
...