Chinaunix首页 | 论坛 | 博客
  • 博客访问: 343811
  • 博文数量: 97
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 636
  • 用 户 组: 普通用户
  • 注册时间: 2014-10-12 22:41
文章分类

全部博文(97)

文章存档

2017年(8)

2015年(87)

2014年(2)

我的朋友

分类: 嵌入式

2015-04-15 21:14:01

使用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) |
给主人留下些什么吧!~~