博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
23、makefile常用讲解(3)
阅读量:7069 次
发布时间:2019-06-28

本文共 1365 字,大约阅读时间需要 4 分钟。

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

2

3

4

转载地址:http://vihll.baihongyu.com/

你可能感兴趣的文章
pyhton3解决"tuple parameter unpacking is not supported"问题
查看>>
安装vmware vCenter Appliance
查看>>
PHP函数
查看>>
ORACLE 更新关联多张表
查看>>
弹性盒子布局
查看>>
SQL中的case when then else end用法
查看>>
【字王的野望】
查看>>
NOIP2015提高组T2 洛谷P2661 信息传递
查看>>
POJ1692 Crossed Matchings
查看>>
linux基础命令二
查看>>
机器学习&数据挖掘笔记_22(PGM练习六:制定决策)
查看>>
网络编程路线
查看>>
Mysql主从备份和SQL语句的备份
查看>>
Tinkoff Challenge - Elimination Round F. Julia the snail
查看>>
The income statement
查看>>
紫书 习题3-2 分子量(字符串,常量数组)
查看>>
or 条件查询
查看>>
Python-互斥锁 进程间通讯
查看>>
asp.net获取服务器信息
查看>>
屏蔽宽带运营商的弹窗广告
查看>>