gcc和Makefile的 -D -U选项

u-boot的Makefile分析之顶层config.mk u-boot-2010-06 顶层目录下的config.mk文件主要完成如下功能的配置: 1、确定生成可执行文件过程中需要的各种工具,如编译器(arm-linux-gcc)、连接器(arm-linux-ld)、反汇编器(arm-linux-objdump)等 2、确定CPU、板相关的配置文件,存在于各个目录下的config.mk 3、确定编译、链接、转换等过程的操作选项 4、根据步骤3确定的编译连接选项生成需要的文件 阅读详情
对于GCC编译器,有如下选项:
        -D macro=string,等价于在头文件中定义:#define   macro   string。例如:-D TRUE=true,等价于:#define   TRUE   true
        -D macro,等价于在头文件中定义:#define   macro   1,实际上也达到了定义:#define   macro的目的。
举例说明:
/* hello.c */
#include <stdio.h>

#ifdef YES
char* str = "Yes, this is a macro.";
#else
char* str = "No, there is no macro.";
#endif

int main()
{
  printf("%s\n", str);
  return 0;
}

# gcc -DYES -o helloyes hello.c
# ./helloyes
Yes, this is a macro.
# gcc -o hellono hello.c
# ./hellono
No, there is no macro.

另外-U选项是取消宏定义。

在Makefile文件里面,可以通过宏定义来控制源程序的编译。只要在Makefile中的CFLAGS中通过选项-D来指定定义的宏即可。

如:
CFLAGS += -DYES=1


sap 标准委外和工序委外_SAP PP 工序委外详解 在SAP里有外包和外协两种:外包:指把原材料发出去,扣减库存,然后供应商加工生产,最后再作为成品入库。主要是在MM模块下实现的。对应的英语叫Subcontracting。外协:一般是指某种工序外协,在工艺路线里设置某个工序为外协后,系统自动会产生一个采购订单,一般是指采购某种服务。采购回来后再继续本公司的其他工序。主要是在PP模块下实现的。对应的英语叫Processing。2.当有委外加工的业务流... 阅读详情

相关推荐

避坑实录:用certificate-manager重置vCenter 6.7证书时遇到的三个致命陷阱

本文详细解析了使用certificate-manager重置vCenter 6.7证书时可能遇到的三大致命陷阱,包括进度卡在85%的服务启动僵局、脚本突然退出的静默杀手以及密码错误锁死的隐藏机制。通过实战验证的解决方案和高级恢复技巧,帮助系统管理员有效避免vCenter环境瘫痪,确保证书更新过程顺利进行。

g5h6i7j的博客 919

在Makefile文件中,gcc -D的作用

编译原理,Makefile

qq_45519101的博客 1132

AI 算力基础设施深度系列(一):从容器到 Kubernetes——算力底座的诞生

1. 容器 = Namespace(视图隔离) + Cgroup(资源限制) + Union FS(镜像分层)└── 不是虚拟机!共享内核,接近零开销2. K8S 三大设计哲学:└── 声明式 API + 控制循环 + 可扩展架构3. K8S 架构:└── 控制面 (API Server / etcd / Scheduler / Controller Manager)

warm3snow的博客 536

gcc compile option -D -U

You can use the gcc compile option -D -U to compile the soure code debug toggle:such as:/* hello.c */ #include #ifdef YesDebug char* str = "Yes, this is a macro."; #else char* str = "No, there is no macro."; #endif int main() { printf("%s/n",

veranal的专栏 995

2026年ERP选型实战:按规模分档,避开成本与实施陷阱

企业资源计划(ERP)是现代企业数字化转型的核心系统,它将财务、供应链、制造、人力等业务整合到统一平台。随着云计算和人工智能技术的发展,ERP已从传统本地部署的记录工具演变为SaaS订阅制、具备AI辅助决策能力的智能运营平台。不同规模企业在选型时的关注点差异巨大:小微企业追求轻量化和快速出报表,中型企业需要在流程标准化与业务灵活性间取得平衡,大型集团则注重多法人管控和数据治理。此外,制造、电商、工程等行业对ERP的模块要求也各有侧重,成本核算数据跑不通更是普遍痛点。如何结合企业规模与行业特征,制定合理的选型

weixin_34320724的博客 381

37张图详解MAC地址、以太网、二层转发、VLAN

MAC 地址 每个网卡或三层网口都有一个 MAC 地址, MAC 地址是烧录到硬件上,因此也称为硬件地址。MAC 地址作为数据链路设备的地址标识符,需要保证网络中的每个 MAC 地址都是唯一的,才能正确识别到数据链路上的设备。 MAC 地址由 6 个字节组成。前 3 个字节表示厂商识别码,每个网卡厂商都有特定唯一的识别数字。后 3 个字节由厂商给每个网卡进行分配。厂商可以保证生产出来的网卡不会有相同 MAC 地址的网卡。 现在可以通过软件修改 MAC 地址,虚拟机使用物理机网卡的 MAC 地址,并不能保.

networktp的博客 4747

2012.07.03

今天上午老师进一步讲解了一些Mware Workstation里的基本的一些操作,绝对路径,相对路径,静态库,动态库。 使用 gcc编译器生成a.out文件 使用ls查看当前目录的内容 再执行./a.out查看结果 两种创建.c文件的方法 下午编写makefile文件 以及编写加减乘除的.c程序 分清楚声明与定义的区别     作业: 1:答:tar命令是Unix/Linux系

suqian_zhangling的专栏 217

【数学基础】基于欧拉角表达的旋转顺序

欧拉角旋转顺序

FalschxMico 1385

gcc 编译和makefile技巧

假设有文件simple.c: 宏展开,预处理 -E -P gcc -E -P simple.c gcc -E simple.c #将会生成更多的内容,对于阅读不方便,加上'-P'就可以屏蔽这些内容 依赖头文件: gcc -M simple.c gcc -MD simple.c #将生成simple.d 文件 -M   生成...

yudingding6197的专栏 943

Python白色飘雪(完整代码)

Python绘制白色飘雪动画的完整代码。

AIGC 3万+

吊打原版YOLOv8!ASF-YOLO多尺度融合+注意力机制实战解析(遥感/医疗/质检均适用)

ASF-YOLO融合YOLOv8的创新目标检测框架摘要 ASF-YOLO是针对小目标检测优化的先进框架,采用三重特征编码器和尺度序列融合技术增强多尺度特征提取能力。核心创新包括: 三重特征编码器(TPE)融合跨层级信息 尺度序列特征融合(SSFF)模块通过3D卷积处理多尺度信息 通道-位置注意力机制(CPAM)聚焦关键特征区域 Zoom_cat模块实现自适应多尺度特征融合 该框架特别适用于医学影像、遥感检测等小目标密集场景,通过动态特征权重调整显著提升检测精度。关键技术实现包含多尺度特征统一、3D卷积序列处

FJN110的博客 529

gcc和gdb和g++和makefile,CMake

当函数需要返回一个对象的时候,如果自己创建一个临时对象用户返回,那么这个临时对象会消耗一个构造函数(Constructor)的调用、一个复制构造函数的调用(Copy Constructor)以及一个析构函数(Destructor)的调用的代价。而如果稍微做一点优化,就可以将成本降低到一个构造函数的代价,这样就省去了一次拷贝构造函数的调用和依次析构函数的调用。这个选项告诉编译器生成一个包含源文件及其依赖的头文件的列表,而不是编译源文件。注意省略形式的前提时库文件在系统的库文件目录。默认编译选择的是第一个。

yang_pi_pi的博客 1190

cesium加载geotiff的 四种方法

本文介绍了在Cesium中加载GeoTIFF数据的两种主要方法。首先解析了核心前置知识,包括坐标系匹配、数据类型区分和性能优化。方法1详细演示了如何将RGB影像GeoTIFF转换为Cesium影像图层,包含从数据解析到Canvas转换的完整代码流程。方法2则针对高程数据(DEM)处理,展示了前端直接解析构建地形网格的方案。文章提供了完整的代码示例和关键实现要点,适用于卫星影像、专题图和数字高程模型等多种GeoTIFF数据类型在三维场景中的可视化需求。

大剑师兰特的GIS世界 396

Makefile中常见的gcc编译参数

在修改Makefile时为了方便清楚地知道在编译时都做了哪些操作,补充下gcc编译中常见的一些参数。

同步更新https://blog.must-xin.com/,内容转载请联系作者本人 1839

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

初识Linux:Linux开发工具gcc/g++和gdb以及Makefile的使用

预处理器(cpp)将。

2302_79860961的博客 932

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Makefile中用宏定义进行条件编译(gcc -D)/在Makefile中进行宏定义-D

在源代码里面如果这样是定义的: #ifdef   MACRONAME //可选代码 #endif 那在makefile里面 gcc   -D   MACRONAME=MACRODEF 或者 gcc   -D   MACRONAME  这样就定义了预处理宏,编译的时候可选代码就会被编译进去了。 对于GCC编译器,有如下选项:         -D macro=string,等

沉淀 2255

linux下gcc、gdb、makefile

GCC 再linux系统中,可执行文件没有统一的后缀,系统从文件的属性来区分可执行文件和不可执行文件。 gcc编译可以经过四个阶段: (1)预处理:c/c++源文件中,以“#”开头的命令被称为预处理命令,如包含命令“#include”,宏定义命令“#define”,条件编译命令“#if”、“#ifdef”等。预处理就是将要包含(include)的文件插入源文件中、将宏定义展开,根据条件编译命令选

960

gcc,makefile

Linux编译器-gcc/g++使用 1.编译过程 https://blog.youkuaiyun.com/weixin_41143631/article/details/81221777 预处理(进行宏替换) 编译(生成汇编) 汇编(生成机器可识别代码) 连接(生成可执行文件/库文件) 格式 gcc [选项] 要编译的文件[选项] [目标文件] 预处理(进行宏替换) 预处理功能主要包括宏定义,...

qq1024734546的博客 259

GCC、GDB、makefile

目录GCC静态库动态库GDBmakefile命名规则三要素写法第一次改进第二次改进第三次改进 GCC -I 用于指定包含文件的路径(比如头文件) -L 包含库的路径 -l 指定库名 -o 生成目标文件 -c 编译成.o文件 -g 用于gdb调试,不加此选项不能调试gdb -Wall 显示更过警告 -D 指定宏编译 -lstdc++ 编译C++代码 -O 优化选项 1-3越高,优先级越高 gcc -Wall hello.c -o hello gcc -c hello.s -

weixin_43488671的博客 669

系统编程之vim-gcc-动态库静态库-makefile-GDB调试

系统编程之vim-gcc-动态库静态库-makefile-GDB调试

qq_44759994的博客 1087

cmake、makefile、gcc、g++工程编译讲解

编译的过程 gcc、g++编译器 -E -S -c -o -l -g -ggdb -w -Wall -D -U -m -O -static -share -L -l -ansi 、 -pedantic 、 -errors -v –version

qq_43730206的博客 1807

u-boot.2012.10makefile分析,良心博友汇总

声明:以下内容大部分来自网站博客文章,仅作学习之用1、uboot系列之-----顶层Makefile分析(一)1、u-boot.bin生成过程分析 2、make/makefile中的加号+,减号-和at号@的含义3、Makefile中wildcard的介绍4、makefile中"=" , ":=" , " : " 的区别 patsubst 以及addprefix5、Linux...

a619861986的博客 203

vim、gcc/g++、make/Makefile、yum、gdb

一、Linux编辑器vim1、简介2、三种模式的概念3、三种模式的切换4、正常/命令模式命令集5、vim末行模式命令集二、Linux系统下的C/C++编译器gcc/g++2、编译器编译代码的过程5、预处理6、编译7、汇编8、链接9、函数库(2)静态库(3)动态库三、Linux项目自动化构建工具make/Makefile3、依赖关系4、依赖方法5、伪目标6、原理7、项目清理四、Linux 软件包管理器yum1、软件包2、查看软件包3、安装软件包4、卸载软件五、Linux调试器gdb1、说明2使用格式3调试命令

Snow_Dragon_L的博客 1084

LINUX下的C编程(Emacs、GCC、Gdb、Makefile)

目录文本编辑器Gcc编译器Gdb调试器的使用Makef工程管理器 文本编辑器 Linux 系统提供了一个完整的编辑器家族系列,如 Ed、Ex、Vi 和 Emacs 等。按功能它们可以分为两大类:行编辑器(Ed、Ex)和全屏幕编辑器(Vi、Emacs)。行编辑器每次只能对一行进行操作,使用起来很不方便。而全屏幕编辑器可以对整个屏幕进行编辑,用户编辑的文件直接显示在屏幕上,从而克服了行编辑的那种不直观的操作方式,便于用户学习和使用,具有强大的功能。 vi编辑器的使用(vim) 命令格式: vi 文件路径

weixin_44282063的博客 689

【Linux】拆分详解 - vim / gcc / makefile

本文介绍了 Linux 中与编程强相关的三个工具:文本编辑器,代码编译器,自动化编译器。旨在帮助初学者快速入手使用 Linux 进行代码编写与编译。

bubble_shadow的博客 1177

Linux工具——gcc和gdb

代码编写调试托管一条龙服务,赶紧上车

wzh18907434168的博客 1196

Makefile语法及编写

本文主要讲解了一些文件编译和Makefile语法,Makefile在Linux中经常使用到,熟悉了解它也是非常有必要。

qq_45731032的博客 1086
上一篇: ubuntu登陆太慢
下一篇: vc6安装pclint
proing
博客等级 码龄19年 2092粉丝 94原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值