Makefile打印变量值

本文介绍Makefile中的调试方法,包括如何使用@echo命令输出信息、使用变量及打印变量值等。通过具体实例展示了如何利用Makefile进行有效的编译管理和调试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Makefile常用调试方法

https://www.cnblogs.com/AP0904225/p/5936465.html

 

https://www.cnblogs.com/lidabo/p/4945678.html

Makefile第二讲:打印出内容和使用变量

摘要 `@echo "开始生成最终执行文件,请稍候..."`这一句便是将一条信息输出到终端,为何前边有个`@`符号呢?有了这个符号该命令本身就不会输出到终端(不理解,自己去掉或者加上`@`符号试试),实验证明,字符串可以不加引号。 看到`OBJS = main.o`了吗?这就是变量的定义,变量定义遵循一般语言的变量命名规则,可以是`_`和`$`开头,变量的值无论是字符串还是什么,都可以不要引号;有一种情况必须不要引号,就像上例这种,具体的....自己尝试吧。

Makefile

 

main.cpp

#include <iostream>
using namespace std;

int main() {
    cout <<"Hello makefile";
    return 0;
}

makefile(还是第一节中的代码,稍作修改)

OBJS = main.o
test:$(OBJS)
    @echo "开始生成最终执行文件,请稍候..."
    g++ main.o -o test

main.o:main.cpp
    g++ -c main.cpp -o main.o

clean:
    rm main.o test
  • @echo "开始生成最终执行文件,请稍候..."这一句便是将一条信息输出到终端,为何前边有个@符号呢?有了这个符号该命令本身就不会输出到终端(不理解,自己去掉或者加上@符号试试),实验证明,字符串可以不加引号。
  • 看到OBJS = main.o了吗?这就是变量的定义,变量定义遵循一般语言的变量命名规则,可以是_$开头,变量的值无论是字符串还是什么,都可以不要引号;有一种情况必须不要引号,就像上例这种,具体的….自己尝试吧。
  • $(OBJS)这是对变量的调用。
  • 还可以把shell命令的返回值作赋给变量,例如将当前目录的路径赋值给变量:CURRENT_DIR = $(shell pwd)

 

 

 

Makefile编译时怎么打印出变量值

https://blog.youkuaiyun.com/freud_lv/article/details/71498125

$(warning $(DVD_SERVICE)) // DVD_SerVICE是Makefile中的变量
$(warning   ST40_IMPORTS is $(ST40_IMPORTS)) 
变量名,一定要加括号。不加的话,可以发现前面都无法输出变量的值。

1、输出打印信息的方法是:$(warning xxxxx),$(error xxxxx)
2、输出打印变量值的方法是:$(warning  $(XXX))
在makefile中打印警告或者错误消息的方法:
$(warning xxxxx)或者$(error xxxxx) 

输出变量方式为:
$(warning  $(XXX))

 

makefile 打印变量的值

https://blog.youkuaiyun.com/as520213211314/article/details/78190224

$(warning  $(XXX))   打印变量的值

1,使用info/warning/error增加调试信息
方法1: $(info, "here add the debug info")
           但是此不能打印出.mk的行号

方法2: $(warning "here add the debug info")
   
方法3: $(error "error: this will stop the compile")
     这个可以停止当前makefile的编译

方法4: 打印变量的值
      $(info $(TARGET_DEVICE) )

2,使用echo增加调试信息(echo只能在target:后面的语句中使用,且前面是个TAB)
方法1: @echo "start the compilexxxxxxxxxxxxxxxxxxxxxxx"

方法2: @echo $(files)
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值