在Makefile中添加宏定义通常是为了在编译过程中定义一些预处理器变量,这些变量可以在源代码中被使用。以下是详细的步骤和示例,说明如何在Makefile中添加宏定义: 1. 了解Makefile的基本结构和语法 Makefile通常包含目标(targets)、依赖(dependencies)和命令(commands)等部分。一个简单的Makefile示例如下: makefile # 声...
clean就是一个伪目标,不会生成新的文件,下面我们来执行一下make clean来看一下效果 执行make clean后func1.o func2.o main.o全部删除了(可以想到卸载程序的原理),下面我们就来添加一个install和uninstall伪目标 在我们执行make install的时候会将我们用到的执行文件和库文件拷贝到指定目录,在执行uninstall的时候会...
rm -rf $(OBJ_DIR)/*.o $(TARGET) 在这个示例中,SRC_DIR指定源文件目录,OBJ_DIR指定对象文件存放目录。SRCS和OBJS分别表示源文件列表和对应的对象文件列表。 通过设置DEFINES变量为-DDEBUG,我们可以添加一个名为 “DEBUG” 的宏定义。 通过运行make命令即可编译生成目标程序。使用make clean可以清除生成的目标文...
其中,MACRO_NAME是宏的名称,value是宏的值。宏的名称通常使用大写字母表示,以便与变量区分。宏的值可以是一个字符串,也可以是一个表达式。 定义了宏之后,可以在Makefile中使用宏来代替一些常量或者预处理指令。例如,可以在编译命令中使用宏来指定编译选项,或者在源代码中使用宏来控制条件编译。 下面是一个示例: 代...
2.3 常用的编译器宏定义 2.4 条件语法 2.5 其他特殊变量 (1)VPATH变量 (2).PHONY变量 (3)include变量 (4)$(Q) 变量 2.6 Makefile实例 2.7 添加打印信息 2.8 实例解析 2.9 objs的用法 三、其他相关知识链接 一、简介 makefile可以简单的认为是一个工程文件的编译规则,描述了整个工程的自动编译和链接的规则。
1. 编译可执行文件Makefile版本号标识:记录程序的不同版本,如libxxx_v1.0。编译器选择:Linux用gcc/g++,ARM用arm-linux-gcc。宏定义:根据需求添加宏条件,如-DDEBUG。编译选项:如-Wall和-O优化等级。源文件和头文件:指定依赖路径,使用wildcard遍历。库文件:静态库libxxx.a,动态库libxxx.so...
4.增加宏定义 5.增加系统共享库 6.增加自定义共享库 7.一个实际的例子 【代码仓库】——makefile-example 代码仓库位于bitbucket,可借助TortoiseHg(GUI工具)克隆代码或者在网页中直接下载zip包。 1.三个C文件和三个头文件 此处的例子稍微复杂些但更接近实际情况。
具体的宏我们可不定义在代码里,可在Makefile里指定,比如:DEBUG = -D_MACRO #定义 $(CC) ...
示例: $(subst a,the,There is a big tree), 把“There is a big tree”中的“a”替换成“the”,返回结果是“There is the big tree” notdir:去除路径,仅保留文件名称,返回文件名的list = 使用时展开后赋值,类似宏定义=: 立即赋值,类似变量 ...
在Makefile 中的变量,有点像 C 语言的宏定义,在引用变量的地方使用变量值进行替换。变量的命名可以包含字符、数字、下划线,区分大小写,定义变量的方式有以下四种: 变量使用的语法如下: $(变量名) 示例: VAR_A = FILE_A VAR_B = $(VAR_A) VAR_C := $(VAR_A) ...