在上面的示例中,定义了一个名为OUTPUT的变量,并使用shell命令将字符串"Hello, World!"的输出结果分配给该变量。然后,在all目标中使用echo命令打印出变量的值。 Makefile的变量可以用于保存命令的输出结果,这样可以方便地在构建过程中使用这些结果。例如,可以将命令的输出结果作为文件名、目录名或其他参数来使用。 对于...
被预定义的环境变量最好理解,也就是当前make程序中所有的环境变量的内容都可以作为预定义宏来使用。需要注意的是,这些宏都是可以被修改的。而且让make进程的环境变量随着改变。但是如果使用SET命令来修改进程的环境变量,则环境变量的宏不会随着改变。下面用JAVA_HOME来举例 # makefile内容 all: echo $(JAVA_HOME) ...
在makefile中,要打印环境变量可以使用echo命令。可以通过在makefile中添加以下代码来打印环境变量: 代码语言:txt 复制 print_env: @echo $$ENVIRONMENT_VARIABLE 上述代码中,print_env是一个自定义的目标名,ENVIRONMENT_VARIABLE是要打印的环境变量名。在命令行中执行make print_env,即可打印环境变量的值。 对于环境变...
echo $(y) #输出变量y .PHONY:all 1. 2. 3. 4. 5. 执行$make -s all bar 输出的值是变量y的值,由于在定义y值的时候x变量尚未定义,所以其值为空。 c、使用“?=”操作符 该操作符的含义是没如果变量之前没有被定义过,那么变量的值就被定义。如果变量的值之前已经被定义过了,这赋值语句什么也不做...
@echo 在Linux内核的Makefile中,如果你想让@echo输出行号和自己的字符串,你可以使用内置变量$(__LINE__)和$(__FILE__)。这两个变量分别表示当前行号和当前文件名。 以下是一个示例,演示如何在Makefile中输出行号和自定义字符串: debug_message: @echo "Debug message at line $$(__LINE__) in file $$...
在上面的makefile当中我们定义了foo,但是他没有值,我们看一下这个makefile的输出结果: 上面makefile的输出表示foo没有被定义,因此当我们定义一个空变量的时候和不定义的效果是一样的。 bar = foo = $(bar) main: demo.c echo demo ifdef foo echo define foo ...
摘要`@echo "开始生成最终执行文件,请稍候..."`这一句便是将一条信息输出到终端,为何前边有个`@`符号呢?有了这个符号该命令本身就不会输出到终端(不理解,自己去掉或者加上`@`符号试试),实验证明,字符串可以不加引号。 看到`OBJS = main.o`了吗?这就是变量的定义,变量定义遵循一般语言的变量命名规则,可以...
使用warning()函数调试变量 在第一章中我们就有强调,在makefile中,大部分语法都遵循makefile的语法。只有在目标规则(目标,依赖,命令)的命令以及以shell()函数执行的部分,是由shell来处理的,遵循shell的规则。 所以是,事实上,如果我们想实时查看makefile中某个变量的值,我们是不能在文本中使用"echo"命令输出变量值...
$(error “error: this will stop the compile”) error 打印行号,停止执行 打印变量的值 $(info$(TARGET_DEVICE) ) 使用echo增加调试信息 注:echo只能放在目标所属的命令,前面有个TAB 输出makefile 中变量的值 make -s printvars VARS='XXXX'