linux makefile 速查
来源:互联网 发布:网络动作游戏排行榜 编辑:程序博客网 时间:2024/06/10 10:44
本文只介绍makefile中的命令和符号的作用。
***********************************************************************
:
依赖,冒号前面是目标,后面是依赖的文件
***********************************************************************
\
换行符,写不下的时候换行用。
***********************************************************************
#
注释,如果要使用#
***********************************************************************
命令
说明
-x <language type>
显示指定输入文件的格式
-c
编译和汇编源文件,但不链接,输出为.o文件格式
-S
编译源文件,但不汇编,输出为.S文件格式
-E
只对源文件进行预处理,并不编译,输出为经过预处理的源代码
我们可以利用上面的-x和-c / –S / –E的组合来控制GCC的整个编译过程,其中-x用于告诉GCC我们从哪里开始,而-c / -S / -E用来告诉GCC在那里结束。
-o output-file
用来指定输出文件,该选项可以指定很多种输出文件,例如:可执行文件、目标文件、汇编文件或者是预处理过的程序代码等,这要根据具体的命令行参数而定。当然,GCC还提供了默认的-o选项,其中,默认的可执行文件是a.out,目标文件是<file_name>.o,汇编文件是<file_name>.s,预编译头文件的格式是<file_name>.suffix.gch
-I<dir name>
告诉GCC在<dir name>中去寻找头文件
-L<dir name>
告诉GCC在<dir name>中去寻找库文件
-l<lib name>
使用名为lib<lib name>.so的程序库
-static
通知GCC链接静态库
***********************************************************************
-M 或者 -MM
自动找头文件,“-M”参数会把一些标准库的头文件也包含进来,“-MM”只会包含非标准库的头文件。
如:gcc -MM main.c的输出则是:
main.o: main.c defs.h
***********************************************************************
=或:=
= 和 := 的区别在于, := 只能使用前面定义好的变量, = 可以使用后面定义的变量。
***********************************************************************
@ 和 -, 或者不用前缀
- 不用前缀 :: 输出执行的命令以及命令执行的结果, 出错的话停止执行
- 前缀 @ :: 只输出命令执行的结果, 出错的话停止执行
- 前缀 - :: 命令执行有错的话, 忽略错误, 继续执行
***********************************************************************
include
引用其他makefile
***********************************************************************
自动变量
含义
$@目标集合$%当目标是函数库文件时, 表示其中的目标文件名$<第一个依赖目标. 如果依赖目标是多个, 逐个表示依赖目标$?比目标新的依赖目标的集合$^所有依赖目标的集合, 会去除重复的依赖目标$+所有依赖目标的集合, 不会去除重复的依赖目标$*这个是GNU make特有的, 其它的make不一定支持***********************************************************************
ifeq ifneq ifdef ifndef
条件判断
***********************************************************************
***********************************************************************
***********************************************************************
***********************************************************************
***********************************************************************
***********************************************************************
- linux makefile 速查
- Linux 命令速查
- Linux命令速查
- Linux命令速查
- Linux常用命令速查
- Linux 命令速查
- Linux 命令速查
- Linux常用命令速查
- linux 命令速查
- Linux常用命令速查
- Linux 命令速查
- Linux常用命令速查
- Linux常用命令速查
- Linux命令速查
- linux笔记速查
- Linux 常用命令速查
- Linux速查
- Linux命令速查
- 一分钟教你知道乐观锁和悲观锁的区别
- DOM解析XML
- android实现和web一样的阴影效果
- xamarin.forms 网络连接检测及网络状态判断案例
- java 中泛型
- linux makefile 速查
- 常用的testbench和matlab代码之读取和写入文本代码
- BigDecimal通过setScale设置小数位数发生ArithmeticException
- IOCP简单示例
- LoadRunner关联
- 添加了索引但不被使用的几种常见可能
- iconfont字体图标的使用
- 初识kotlin,实现一个简单的列表
- CentOS 安装Oracle 11gR2步骤和一些安装过程中出现的错误(整理)