makefile常用讲解三
来源:互联网 发布:linux只能ping通自己 编辑:程序博客网 时间:2024/05/16 08:20
8)objects = *.o
通配符同样可以用在变量中。并不是说[*.o]会展开,objects的值就是“*.o”。Makefile 中的变量其实就是 C/C++中的宏。如果你要让通配符在变量中展开,也就是让 objects 的值是所有[.o]的文件名的集合,那么,你可以这样:objects := $(wildcard *.o),这种用法由关键字“wildcard”指出。
9)通过makefile编译,自动推导,如果发现当前的文件没有做过更新,则不会编译,只编译更新过了的。
附:
1、预定义变量选项
预定义变量
含义
$*
不包含扩展名的目标文件名称。
$+
所有的依赖文件,以空格分开,并以出现的先后为序,可能包含重复的依赖文件。
$<
第一个依赖文件的名称。
$?
所有的依赖文件,以空格分开,这些依赖文件的修改日期比目标的创建日期晚。
$@
目标的完整名称。
$^
所有的依赖文件,以空格分开,不包含重复的依赖文件。
$%
如果目标是归档成员,则该变量表示目标的归档成员名称。例如,如果目标名称为 mytarget.so(image.o),则 $@ 为 mytarget.so,而 $% 为 image.o。
AR
归档维护程序的名称,默认值为 ar。
ARFLAGS
归档维护程序的选项。
AS
汇编程序的名称,默认值为 as。
ASFLAGS
汇编程序的选项。
CC
C 编译器的名称,默认值为 cc。
CCFLAGS
C 编译器的选项。
CPP
C 预编译器的名称,默认值为 $(CC) -E。
CPPFLAGS
C 预编译的选项。
CXX
C++ 编译器的名称,默认值为 g++。
CXXFLAGS
C++ 编译器的选项。
2、make 选项
命令行选项
含义
-C DIR
在读取 makefile 之前改变到指定的目录 DIR。
-f FILE
以指定的 FILE 文件作为 makefile。
-h
显示所有的 make 选项。
-i
忽略所有的命令执行错误。
-I DIR
当包含其他 makefile 文件时,可利用该选项指定搜索目录。
-n
只打印要执行的命令,但不执行这些命令。
-p
显示 make 变量数据库和隐含规则。
-s
在执行命令时不显示命令。
-w
在处理 makefile 之前和之后,显示工作目录。
-W FILE
假定文件 FILE 已经被修改。
3、示例代码
CC=gcc
CXX=g++
CFLAGS= -g -Wall
INC=./***
LIB=./***.a
CFLAGS+= -DSNACC_DEEP_COPY -DHAVE_VARIABLE_SIZED_AUTOMATIC_ARRAYS -Wno-deprecated -lpthread -lssl
TARGET=***
OBJ = **.o \
./**.o\
$(TARGET): $(OBJ)
$(CXX) $(CFLAGS) -o $@ $^ $(LIB)
#如下代码,把所有的cpp文件编译成.o文件
%.o: %.cpp
$(CXX) $(CFLAGS) $(INC) -c -o $@ $<
clean:
rm -f *.o
rm -f $(TARGET)
参考
【1】 http://www.cnblogs.com/goodcandle/archive/2005/11/17/278702.html
【2】 www.wenku.baidu.com
【3】 http://www.chinaunix.net/jh/23/408225.html
【4】 http://www.gnu.org/software/make/manual/make.html
- makefile常用讲解三
- makefile常用讲解(2)
- makefile常用讲解二
- makefile常用讲解(3)
- makefile常用讲解(2)
- makefile常用语法讲解(1)
- makefile常用语法讲解一
- makefile常用语法讲解(1)
- makefile中常用函数讲解
- makefile讲解...
- makefile讲解
- makefile讲解
- Makefile讲解
- makefile文件讲解
- Android Makefile 文件讲解
- 通用Makefile讲解【转】
- Android Makefile 文件讲解
- Makefile使用讲解
- 偶奇偶他回家哦ijoknbnjj
- 安装交叉编译工具,执行arm-linux-gcc –v命令出现提示找不到该文件或目录?解决方法
- 顺序容器的insert用法
- 关于Java中equals()和hashCode()的用法笔记。
- Code[VS] 1012 最小公倍数与最大公约数
- makefile常用讲解三
- Android Uri的几种使用方法,分享共同学习
- 在网页中 生成QQ在线临时对话框/聊天
- [ACM] POJ 2409 Let it Bead (Polya计数)
- ssh 免密码登陆
- android.app.SuperNotCalledException: Activity {com.lcxx.nur.view/com.lcxx.nur.view.doctorsadvice.Doc
- Vijos 1052 贾老二算算术
- 建设网站优质外链
- linux进程通信之共享内存