概述
D选项
D选项是用来在使用gcc/g++编译的时候定义宏的。
gcc -DDEBUG -D 后面直接跟宏命,相当于定义这个宏,默认这个宏的内容是1
gcc -DNAME=Peter -D 后面跟 key=value 表示定义key这个宏,它的内容是value
常用场景
-DDEBUG 定义DEBUG宏,可能文件中有DEBUG宏部分的相关信息,用个DDEBUG来选择开启或关闭DEBUG
-Dprivate=public -Dprotected=public 通常用于测试环境,把private 与 protected全替换为public 的。这个还是很常用的,比如我们使用gtest去单元测试,直接测试目标类的成员函数,但是可能目标类的成员函数为了封装性,它可能是protected,所以我们使用这个宏把它全变成public
项目中的应用:
项目需要判断是否使用海思的内存处理函数, 使用海思的话会将诸如memcpy,memset之类的函数重新define成海思自己的实现函数, 该重定义过程我们在一个专门的.h文件 hi_mem.h中进行.
由于memcpy等函数使用场景众多, 不同点C都可能使用, 但又无法保证哪个C文件先执行, 因此保险的做法是每个C文件都包含 hi_mem.h, 而是否需要包含又取决于是否使用海思的芯片.
因此, 我们在makefile文件中使用D选项将是否使用海思芯片的信息传给程序,避免多个C文件的修改:
C_FLAGS += -DSUPPORT_HISI_MEM
而在程序中判断该变量判断是否需要包含 hi_mem.h
#ifdef SUPPORT_HISI_MEM
#include "hi_mem.h"
#endif
原文链接:gcc -D 选项_我喜欢雨天的清新的博客-CSDN博客_-d gcc
最后
以上就是虚心老鼠为你收集整理的gcc -D选项的全部内容,希望文章能够帮你解决gcc -D选项所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复