Makefile中关闭DEBUG宏

宏管理工具之lite-manager 在不同的使用情景下,lite-manager带来的效果还是有一些差别的,假如你是一个对工程特别熟悉的人,那么对应的lm.cfg或者是proj.cfg中的宏都是可以随手改的。但是并不是每个做工程的人都对整个宏特别熟悉,此时就会出现给了一个不熟悉的人去修改,那么他就得一一对照整个lm.cfg里的约束关系和宏定义的可能,再去设置proj.cfg,如果只是几个宏,那随手就改了(几个宏为什么还要用lm?lite-manager 总体还是挺小的,显示也还凑活,代码是开放的,完全可以自定义一些。 阅读详情

我在头文件中定义了DEBUG宏,并没有去开启它,但是在编译运行后却打印出来了!
这里写图片描述
原因是Makefile中的编译参数开启了DEBUG。
这里写图片描述
解决办法是在这里把DEBUG选项删掉,make后运行程序还是会出现打印调试信息,貌似是编译参数未被检测到更新,一定要make clean之后再去make,这样就可以把DEBUG宏屏蔽掉了!

在一个makefile中输出一个程序的debug版本和release版本 在一个makefile中输出一个程序的debug版本和release版本 场景: 开发人员(rd)和测试人员(qa)是不同的人,可执行程序是通过配置管理平台提供的。同时,所有程序要上线运行,要通过qa的测试,然后将测试通过的程序,在配置管理平台上输出后上线。(从百度的流程中提取出来的,其他公司的流程未知) 需求: debug版本的会有一些额外的处理,以及能够打印更多的log 阅读详情

相关推荐

Zephyr RTOS线程间通讯实战:消息队列与信号量的5个经典应用场景

本文深入探讨了Zephyr RTOS中线程间通讯的核心机制,通过消息队列与信号量的组合,详细解析了传感器数据处理流水线、命令分发系统、日志记录、资源池管理以及周期性任务协同调度等5个经典应用场景。这些实战模式为构建高效、稳定且可维护的嵌入式多线程系统提供了清晰的设计蓝图和代码范例。

tomato的博客 94

[c/c++] gcc makefile -D宏定义 -U取消宏定义

前言 Makefile中常见到-D,但这其实不是makefile所有的,而是gcc所有的。 -D -D name Predefine name as a macro, with definition 1. 定义宏,且将其值默认定义为1 宏定义 gcc -D FOO gcc -DFOO 可通过以上两种方式来宏定义FOO,即-D后加空格或不加空格都可以,这两种方式定义,FOO的值默认为1。 ...

GreenTeemo的博客 5229

PCIe Electrical PHY(4)-PCIE SPEC第8章指标讲解

1.1 PCIE TX SPEC TX主要关心两类参数,一类是Voltage Parameters,一类是Jitter Parameters。 其中Voltage相关参数主要关心不同preset下差分电压幅度的准确性。以及共模电压的稳定性。 PCIE spec中对Jitter相关的参数测量定义如下: 分为两大类:DDJ(Data dependent Jitter)和UJ(Uncorrelated ...

maxwell2ic的博客 5951

预处理&&Makefile基本操作(篇十一)

gcc 编译 编译过程 a. 预处理 gcc -E file.c -o file.i 将头文件载入的该源文件中 删除代码中的所有注释 将所有的宏,进行原地替换 处理所有的条件语句 b. 编译 gcc -S file.i -o file.S 生成相应的汇编代码 c. 汇编 gcc -c file.S -o file.o 将汇编代码翻译成机器可识别的...

Cool2050的博客 1262

手把手教你搞定爱思唯尔LaTeX投稿:从模板到PDF生成的全流程避坑指南

本文详细介绍了使用LaTeX投稿爱思唯尔期刊的全流程避坑指南,包括模板选择、文件结构规范、投稿系统文件上传策略、PDF生成与检查等关键步骤。特别强调了避免常见错误如宏包冲突、图片丢失和参考文献问题,并提供了投稿后的应急方案和高阶自动化校验脚本,帮助研究者顺利完成投稿。

weixin_42525289的博客 510

全国排污许可证数据

from tkinter import * # 导入窗口控件 import tkinter.filedialog import requests from lxml import etree from tkinter import ttk from bs4 import BeautifulSoup import webbrowser # 调用浏览器打开网页 from tkinter import messagebox # 弹出提示框 from openpyxl import Workbook imp.

Newnotes的博客 3387

cmake取消宏定义_宏的高级用法:XMACRO

使用switch-case/if-else对于条件/分支处理的程序设计,我们惯性地会选择switch-case或者if-else,这也是C语言老师当初教的。以下,我们用一个播放器的例子来说明,要实现的功能如下:收到用户操作播放器命令请求,如“播放”、“暂停”等,程序要对命令作区分;针对不同的命令请求,作相应的处理;输出必要的辅助信息。首先,将命令定义成enum类型:enum{ C...

weixin_33375360的博客 1366

几款支持国标GB28181的平台以及视频监控设备接入的配置方法(Web端无插件播放)

GB28181解决的一个主要问题就是如何远程、跨网络、跨区域、跨级别的访问网络中的监控设备(包括IPC、NVR等),本文介绍几款G28181平台的接入配置方法,适合有监控视频摄像头的远程接入和预览需求的人群参考使用。

一名高级工程师的博客 1万+

【Makefile】宏控

https://www.cnblogs.com/xhf-wonder/p/7458188.html 宏控宏二级目录三级目录 宏 是什么 在make文件中使用,相当于功能开关,是控制代码执行的条件。 为何用 需要暂时去掉这个功能,一个宏控就能解决,而不是一个文件一个文件删掉你加的代码 二级目录 三级目录 ...

尚拙的博客 1403

CODESYS V3.5 SP17编程环境全攻略:从安装到多语言编程实战

本文全面解析CODESYS V3.5 SP17编程环境,从安装配置到多语言编程实战技巧。详细介绍了运行时环境设置、六种IEC 61131-3语言的特性对比与混合编程策略,以及高级功能开发如自定义算法模块和实时通信配置。适合工业自动化工程师快速掌握这一强大工具。

weixin_30632089的博客 489

【在 WSL2 GUI 中使用 pulseaudio 播放声音】

最近在搞一个Linux项目,由于WSL2中需要用到声音外放,无奈只能潜心研究。后来就使用了一种折中的方式替代,那就是pulseaudio。目前来讲WSL2对硬件外设的支持还是不太友好,关于USB的支持我之前在其他文章中已经论述过了,这里不讨论。1、Windows11别忘记打开声音2、可能有一定延迟,因为是通过网络传输的。3、效果的话只能见仁见智了,如果不能满足要求就安装一个实实在在的Ubuntu吧!

jiexijihe945的博客 4532

内核 DEBUG日志控制

在开发过程中,无可避免的会遇到printk打印信息的输出,在写新功能或BUG调试的时候我们想看到更多的调试信息,但版本发出后,我们想看到尽可能少的输出信息,那么怎么控制这个呢。。 下面的方法可以对输出进行控制: #undefPRINTD#undefPRINTDD#ifdefFREE_DEBUGG#definePRINTDD(nu,fmt,arg...) printk(KERN_DEBUG"free...

yldfree的博客 2225

Android框架WiFi架构

动平台,它主要是用来支持WEP,WPA/WPA2和WAPI无线协议和加密认证的,而实际上工作内容是通过socket(不管是wpa_supplicant与上层还是wpa_spplicant与驱动都采用socket通讯)与驱动交互上报数据给用户,而用户可以通过socket发送命令给wpa_supplicant调试来对wifi芯片操作,简单的说,二、android wifi 系统架构:andtoid wifi 系统引入了wpa_supplicant,它的整个wifi系统。

手机-手表蓝牙开发工程师的博客 3459

【0基础嵌入式学习日志】Day07:条件编译、DEBUG 开关与日志打印模块

条件编译就是根据某个宏是否被定义,决定某段代码是否参与编译。#endif如果定义了 DEBUG,就编译 printf 这句代码;如果没有定义 DEBUG,就不编译这句代码。所以条件编译不是运行时判断,而是编译阶段就决定代码是否进入最终程序。这和普通if判断不同。普通if而#endif也就是说,如果没有定义DEBUG,这段代码在编译时就会被排除。printf这句定义了一个可变参数宏。fmt 表示格式字符串... 表示可变参数__VA_ARGS__ 表示后面传入的变量参数。

duhong2026的博客 570

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

linux 屏蔽内核调试信息,[总结]内核调试开启关闭Debug功能 | 勤奋的小青蛙

通过定义宏来控制是否开启Debug.代码如下:#undef PDEBUG /* undef it, just in case */#ifdef SCULL_DEBUG# ifdef __KERNEL__/* This one if debugging is on, and kernel space */# define PDEBUG(fmt, args...) pr...

weixin_42121272的博客 3201

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

ESP8266 Arduino 内核实时调试指南:Debug Port / Debug Level 菜单与 DEBUG_ESP_* 宏体系详解

本篇技术指南聚焦 ESP8266 core for Arduino 自 2.1.0-rc1 起内置的实时调试(Debugging)功能:如何通过 Arduino IDE 的 **Debug port** 与 **Debug Level** 菜单启用内核级调试输出,如何在自己编写的 sketch 与库中复用 `DEBUG_ESP_PORT` / `DEBUG_ESP_*` 宏体系打印自定义调试信息,

gitblog_00323的博客 428

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

新手教程03:通过makefile脚本使用VCS+Verdi进行联合仿真

本文主要介绍如何通过makefile脚本的方式用VCS+Verdi进行联合仿真。

weixin_43414549的博客 6482

Windows Makefile 使用

VS 环境下使用MAKEFILE的工具为NMAKE 注:通常在VS安装目录/VC/BIN 里面,如果在控制台输入此命令无效,可以此路径添加到环境变量PATH里 NMAKE 使用MAKEFILE的语法为 Nmake /f makefile /x stderrfile [macrodefs][targets] 注:makefile 为makefile文件,/xstderrfile为

dengkangyang4的博客 1465

功能宏

功能宏开关模块的实现(C语言) 分类: 设计思路2012-11-11 22:09 445人阅读 评论(0) 收藏 举报 目录(?)[+] 一、功能宏优点     在进行软件系统的开发过程中,对不同的功能模块的代码使用分别使用与之对应的宏将其控制起来,其有如下优点:     ①、方便移植         在移植过程中,可根据功能宏快速的将功能模

pi9nc的专栏 1382

SYNOPSYS VCS Makefile文件编写与研究

转载地址:点击打开链接 SYNOPSYS VCS Makefile文件编写与研究 这个Makefile是synopsys提供的模板,看上去非常好用,你只要按部就班提供实际项目的参数就可以了。我们来看这个文件的头部说明:  makefile 其实完全可以用csh或其他脚本来编写,只是VCS使用的linux内置的make命令定义了一个标准的仿真脚本,make命令是专门用来  做项目的源文件管理

feixiaku的专栏 3211

VSCode手动搭建STM32编译调试环境:makefile与debug配置详解

嵌入式软件开发中,构建系统与调试工具链是决定开发效率的关键环节。理解从源码到固件的完整编译流程,掌握交叉编译器的参数配置,以及调试器与目标芯片的通信原理,能帮助开发者摆脱对集成开发环境的依赖。基于Makefile的构建管理方式,在大型固件项目中具有更高的可维护性和可定制性;而基于OpenOCD与GDB的调试架构,则为开发者提供了灵活、开放的调试解决方案。这些技术不仅适用于STM32系列芯片,也广泛适用于各类ARM Cortex-M嵌入式平台。在实际工程中,通过手动配置VSCode下的编译与调试环境,可以精确

weixin_33911824的博客 340

编程技巧-Debug printX

转自:http://blog.chinaunix.net/uid-20937170-id-3033633.html 本文包含《Linux Device Drivers》,即LDD3的第四章:Debugging Techniques的读书笔记之一,但我们不限于此内容。我在网上看到了LDD3的中文版:http://www.deansys.com/doc/ldd3/ ,我看了一下,最好

Imeng的专栏 656

makefile设置宏定义进行条件编译,实现多版本代码同时维护

g是生成调试信息,生成的可执行文件具有和源代码关联的可调试的信息。通过宏定义开关DEBUG来控制需要编译的代码,这个DEBUG名字是可以自己取的,对应下面-DDEBUG中的DEBUG,这个DEBUG必须紧跟-D,否则会报错,不信你试试。那有的小朋宇可能就要问了,这CFLAGS是啥意思啊,-DDEBUG是啥意思,好吧,一一来解释一下。-O代表默认优化,可选:-O0不优化,-O1低级优化,-O2中级优化,-O3高级优化,-Os代码空间优化。-D是添加宏定义,DEBUG是宏的名称,可以自己定义。

b405516801的博客 1545

Linux驱动 | 调试宏和多平台兼容的Makefile

调试宏 将头文件driver.h包含到驱动文件中。 drvier.h #ifndef __SCULL_H__ #define __SCULL_H__ #ifdef EN_DRIVER_DEBUG #ifdef __KERNEL__ //处于内核空间 #define PDEBUG(fmt,args...) printk(KERN_DEBUG fmt,##args) #else //处于用户空间 #define PDEBUG(fmt,args..

Javier Huang的博客 326
上一篇: 嵌入式Linux--读取bmp文件头信息
下一篇: 嵌入式Linux--使用libjpeg库解码jpg图片
奔向星辰花海
博客等级 码龄10年 113粉丝 58原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值