Gcc 编译时指定宏

2023-10-29

gcc 编译指定宏

那在makefile里面
gcc -DMACRONAME=MACRODEF
或者
gcc -DMACRONAME
这样就定义了预处理宏,编译的时候可选代码就会被编译进去了。
举例说明:
-Dmacro=string,等价于在头文件中定义:#define macro string。
-DTRUE=true,等价于在头文件中定义:#define TRUE true
-Dmacro,等价于在头文件中定义:#define macro 1,实际上也达到了定义:#define macro的目的。
-DLINUX,等价于:#define LINUX 1(与#define LINUX作用类似)。
–define-macro macro=string与-Dmacro=string作用相同。

Qt pro文件中示例

原程序

#include <iostream>

using namespace std;

int main()
{
#ifdef DEF
    cout<<"abc"<<endl;
#else
    cout<<"xyz"<<endl;
#endif
    return 0;
}

pro文件

TEMPLATE = app
CONFIG += console c++11
CONFIG -= app_bundle
CONFIG -= qt

SOURCES += main.cpp

QMAKE_CXXFLAGS += -DDEF

编译输出

g++ -c -pipe -fno-keep-inline-dllexport -DDEF -g -std=gnu++11 -frtti -Wall -Wextra -fexceptions -mthreads -DUNICODE -DQT_QML_DEBUG

执行结果

这里写图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Gcc 编译时指定宏 的相关文章

随机推荐

  • vue 实现抽奖大转盘

    实际解决需求 前端只是负责页面转动 在用户点击时 请求中奖接口 同同时通过设置css属性 让转盘转动起来 当转盘转动结束后 根据请求后端接口回来的中奖信息 设置转盘的转动位置 然后进行弹窗显示中奖信息 在此时 注意要重置转盘的转动角度为初始
  • python组成结构_[Python入门学习]-Python项目的组织结构

    一 工程结构 二 编码规范 1 命名规范 包 使用小写字母命名 如果有多个单词 则用下划线分隔 正确的命名方式 lower with under 模块 使用小写字母命名 如果有多个单词 则用下划线分隔 正确的命名方式 lower with
  • Notepad++ 下载

    1 输入下载网址 https notepad plus plus org 2 点击download 3 开始下载安装包 下载好双击下面 跟着向导完成 在此处点击需要创建快捷方式 然后点安装 完成安装的效果
  • 排序算法系列1--简单排序(选择,冒泡,直接插入,希尔排序)

    排序是数据处理中十分常见的操作 现代高级语言都有现成的n种排序算法 但了解它们的代码 对计算机思维有帮助 简单选择排序 每一趟从待排序的数据元素中选择最小 或最大 的一个元素作为首元素 直到所有元素排完为止 简单选择排序是不稳定排序 无论数
  • Mysql数据库迁移:善用Navicat工具,事半功倍

    数据库迁移 在说到数据库迁移方面 像很多开发工作一样 简单有简单的做法 复杂有复杂的做法 就看怎么做了 那么什么样子的数据库迁移方式才是最优的 在这里是没有准确的定义的 但是我这边分享一个比较简单而言的数据库迁移方案 一 迁移方案描述 例如
  • Linux 别名的设置与修改

    装了个 Ubuntu 在终端下 输入 ll 将全部文件显示出来了 由于平时工作中使用的 suse 系统下 输入 ll 时是不会显示隐藏文件的 文件名前面带 的文件 而且一般很少使用隐藏文件 习惯问题 不希望它显示隐藏文件 打算改改 在终端下
  • STM32-基本知识梳理8-FATFS文件系统移植

    一 基本概念 1 为什么需要文件系统 在没有文件系统的存储器中 一般通过手工记录 那些变量存放在那些位置 很难有系统的管理 难以记录有效数据的位置 难以确定存储介质的剩余空间 不明确应以何种格式来解读数据 加入文件系统后 就可以引导区 目录
  • 运输层 :UDP用户数据报协议

    1 相关概念 UDP数据包产生 上层应用产生数据 但是这与真正发送的IP数据报数量并没有什么联系 并且UDP报文并不是一种可靠的协议 我们必须关注IP数据报的长度 如果超过MTU 在链路层的一种限制 则应该进行分片 2UDP报文 16位源端
  • c++ new与delete与qt内存回收机制

    在c primer中读到 new 是在堆里面申请一段内存资源 new必须与delete成对使用 否则就会造成内存泄漏 可最近学qt 我经常可以看见只new而不delete的情况 是不是这样就内存溢出了 非也 百度了一下qt的内存管理机制 才
  • Qt使用数组实现控件批处理

    Qt使用数组实现控件批处理 在Qt中 当你需要对多个控件进行批处理操作时 使用控件数组会大大简化你的代码量 例如希望在一个页面中创建一个控件数组 其中包含8条控件集合 控件数组的定义如下 QCheckBox checkbox 8 QLabe
  • 微机原理课堂练习五

    练习五 定时计数器 和A D D A转换 一 选择题 在下列每小题的四个备选答案中选出一个正确的答案 并将其字母标号填入括号内 24分 1 某一测控系统要用一脉冲信号产生单稳信号 如果使用8253可编程定时 计数器来实现此功能 则8253应
  • Ubuntu16.04 搭建Android源码的git+gitosis+repo代码管理的服务器

    一份源码 要让团队里的人能够轻松地拉取 以下是我的搭建过程 1 关于源码及相关编译环境参考我之前的一篇博文https blog csdn net qq 28449863 article details 79978937 2 简单做个描述 所
  • 2分钟学会Python绘制蟒蛇!

    目录 一 Python蟒蛇绘制 问题分析 1 1 Python蟒蛇绘制 二 Python蟒蛇绘制 实例编写 三 运行效果 3 1 程序关键 四 Python蟒蛇绘制 举一反三 4 1 Python语法元素理解 4 2 程序参数的改变 4 3
  • 吐槽大会,来瞧瞧资深老前端写的垃圾代码

    忍无可忍 不吐不快 本期不写技术文章 单纯来吐槽下公司项目里的奇葩代码 还都是一些资深老前端写的 希望各位对号入座 知道了什么是烂代码 才能写出好代码 别说什么代码和人有一个能跑就行的话 玩笑归玩笑 人都有菜的时候 写出垃圾代码无可厚非 但
  • 面试时,被问到频繁跳槽该如何回应?

    有数据显示 现在的职场人 跳槽越来越频繁 95后平均7个月就离职 对于面试官来说 一个跳槽过于频繁的人总是存在潜在风险 比如抗压力差 稳定性不好 心不定这山望着那山高 职业规划不清晰等等 我一直强调一个观点 职场人跳槽 应该是为了下一步有更
  • 十八、部署 Vue.js 项目到生产环境

    本章概要 构建发布版本 部署 项目开发完毕并测试后 就要准备构建发布版本 部署到生产环境 18 1 构建发布版本 在构建发布版本前 注意将项目代码中用于调试的 alert debugger console log 等语句删除或注释 在生产环
  • Linux目录读写和可执行权限

    一 进入目录权限 如果我在普通用户下创建了一个目录f1 然后使用chomd u rwx g rwx o rwx之后 我在普通用户下想进入f1目录 权限不允许 然后我切换到超级用户下 再次尝试进入到f1目录 这个时候允许进入 然后回到普通用户
  • static的作用域

    一 面向过程设计中的static 1 静态全局变量 在全局变量前 加上关键字static 该变量就被定义成为一个静态全局变量 静态全局变量有以下特点 该变量在全局数据区分配内存 未经初始化的静态全局变量会被程序自动初始化为0 自动变量的值是
  • Linux下rgmii接口,zynq7010 petalinux 2019.2 RGMII via EMIO 连接问题

    各位好 遇到一个问题 petalinux 2019 2 zynq7010 通过gmii to rgmii 连接挂外EMIO管脚上的PHY kernel启动没有识别PHY的动作 在非linux环境下测试过网络是OK的 u boot下也能够正常
  • Gcc 编译时指定宏

    gcc 编译指定宏 那在makefile里面 gcc DMACRONAME MACRODEF 或者 gcc DMACRONAME 这样就定义了预处理宏 编译的时候可选代码就会被编译进去了 举例说明 Dmacro string 等价于在头文件