Makefile中有三个非常有用的变量:
$@ 目标文件
$^ 所有的依赖文件
$< 第一个依赖文件
main:main.o mytool1.o mytool2.o
gcc -o $@ $^
main.o:main.c mytool1.h mytool2.h
gcc -c $<
mytool1.o:mytool1.c mytool1.h
gcc -c $<
mytool2.o:mytool2.c mytool2.h
gcc -c $<
可简写为:
main:main.o mytool1.o mytool2.o
gcc -o $@ $^
..c.o:
gcc -c $^
..c.o:
gcc -c $<
表示所有的.o文件都是由相应的.c文件生成的
系统默认的库文件路径: /lib /usr/lib /usr/local/lib
对于一些非常用的函数,可能需要使用-L参数制定库所在路径。
对于库:libm-2.1.2.so
可通过gcc -o test test.c -lm 来链接(去掉lib和后面的版本号)
man 命令 -->查找Shell指令帮助
man 2 命令 2 -->查找系统调用帮助
man 3 命令 3 -->C库文件函数帮助