linux make初学

Linux/Unix系统下make命令详解及最佳实践

在linux/unix系统中,make命令是一个非常重要的编译命令。
只要正确的写好了Makefile,就可以通过make命令很方便的编译出可执行程序。

某些IDE(Integrated Development Environment)上有提供make按钮,供编译源代码,
这个make按钮所执行的功能和make命令所做的事很相像。
window系统下的编程可能这种IDE开发环境会相对较多。

make命令可以指定具体的Makefile,来决定要怎么编译:
make -f ./../makefile,
其中-f命令选项用来读取指定的Makefile。
如果没有指定具体的Makefile文件,那默认情况下make命令会从当前目录下
去读取名称为Makefile(不同linux版本可能不完全相同)的档案。

整个build的过程是:预编译->编译->链接,最终形成可以执行的可执行文件。

make命令编译源代码有一些基本的规则:
1. 如果源代码从来没有被编译过,那么make命令会进行编译;
2. 在编译过源代码之后,又重新修改了源代码内容,那么make命令会对其进行编译;
3. 如果修改了头文件部分,那么所有include了该头文件的文件都会被重新编译;

make命令依据档案的修改时间来决定要不要编译某个源文件,如果检查到源文件的修改时间比目标文件的修改时间要新,
那么就是目标文件存在,make依然会去编译这个源文件(此时make会认为用户修改了源文件)去编译出更新的目标文件处理。

关于makefile也需要注意,特别是tab字符和空格字符的使用,一不小心就会造成奇怪的错误。
1. makefile中可以include其它的makefile;
2. 以include开头的行必须不能以tab字符开始;
3. 每一行的行末千万不要加空格。
PS:这些说起来就是一句话的事,很多时候真的也是很多人容易忽视的问题。

make命令和make规则很复杂,很强大。
后面本人也会将学习过程中的心得体会慢慢补充上来。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值