标签:
1.常用编译:gcc -o hello hello.c
-o表示输出可执行文件名
-c表示只要求编译器输出目标代码,而不是可执行文件
-g表示在编译的时候要求编译器提供以后对程序进行调试的信息
2.Makefile
格式:
target:components
TAB rule(TAB就是一个tab键,即需要空一个tab,否则出现错误)
简化:(三个常用变量:$@,$^,$<)
$@(目标文件),$^(所有的依赖文件),$<(第一个依赖文件)
如此可以将以下Makefile
main:main.o mytool1.o mytool2.o
gcc -o main main.o mytool1.o mytool2.o
main.o:main.c mytool1.h mytool2.h
gcc -c main.c
mytool1.o:mytool1.c mytool1.h
gcc -c mytool1.c
mytool2.o:mytool2.c mytool2.h
gcc -c mytool2.c
改为如下形式:
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 $<
这个规则表示所有的.o文件都是依赖于相应的.c文件安的。
标签:
原文地址:http://www.cnblogs.com/weekman/p/4249727.html