使用gcc编译
1、直接以gcc编译源码,会默认生成a.out。
gcc hello.c 默认生成a.out
2、单文件编译过程
gcc -c hello.c 生成hello.o
gcc -o hello hello.o 生成hello,可执行文件
3、多个源码文件的编译
gcc -c a.c b.c 生成a.o b.o
gcc -o test a.o b.o 生成 test,可执行文件
4、增加编译条件,让程序拥有较好的性能或者增加调试信息
gcc -O -c a.c b.c -O为生成优化参数
gcc -Wall -c a.c b.c -Wall为产生更详细的编译信息
5、加入外部链接库
gcc sin.c -lm -L/lib -L/user/lib -lm是重点,链接外部库
用make进行宏编译
优点:
1、简化编译时所需执行的命令
2、若在编译完成后,修改了某一源码文件,则make仅会针对被修改了的文件进行编译,其他目标文件不会被更改
3、可以依照相关性来更新执行文件 (用不同的makefile文件??)
示例 makefile文件
targrt :目标文件1 目标文件2
gcc -o 可执行文件名 目标文件1 目标文件2
基本的makefile语法:
在makefile中 # 代表批注,
需要在命令的第一个字符
目标与相关文件之间只需以“:”隔开
变量的基本语法:
变量与变量内容以“=”隔开,同时两边可以具有空格
变量左边不可以有
变量与变量内容在 = 两边不能具有“:”
在习惯上,变量最好是大写的
变量使用时,以 ${变量} 或者 $(变量)。
make命令中变量优先级
make命令行后加上的环境变量为第一优先级
makefile中指定的变量为第二优先级
shell原本具有的环境变量第三优先
阅读(1157) | 评论(0) | 转发(0) |