cmake实现宏控制

news/2025/1/11 18:29:06/

cmake可以在编译命令中实现对代码中宏的控制。下面写一个简单的案例。

源文件main.cpp

#include <stdio.h>int main()
{
#ifdef HELLOprintf("this is hello\n");
#elseprintf("this is unknow\n");
#endif	return 0;
}

CMakeLists.txt文件

cmake_minimum_required(VERSION 3.16)
project(demo)if(DEBUG)add_definitions(-DHELLO)
ENDIF()add_executable(demo main.cpp)

我们在cmake时通过设置DEBUG,就可以控制代码中HELLO宏的打开与关闭

1、不设置DEBUG参数进行编译

cmake ..
make

运行程序可以看到如下打印

root@ubuntu:/home/lng/cmakeTest/build# ./demo
this is unknow
root@ubuntu:/home/lng/cmakeTest/build# 

2、设置DEBUG参数进行编译

cmake -D DEBUG=1 ..
make

运行程序可以看到如下打印

root@ubuntu:/home/lng/cmakeTest/build# ./demo
this is hello
root@ubuntu:/home/lng/cmakeTest/build# 


http://www.ppmy.cn/news/632137.html

相关文章

关于宏文档开启宏后还是不能正常使用问题

1.问题 2.开启宏 (62条消息) [Win10Excel365]尽管已启用VBA宏&#xff0c;Excel还是无法运行宏_逍遥猴哥的博客-CSDN博客 3. 问题还是没解决 发现可能是字体显示乱码&#xff0c;导致vba运行找不到争取路径 VBA编辑器中中文乱码的解决办法&#xff1a;1、依次点击【工具→选项…

【红黑树】都这样讲了,不会还有人不会红黑树吧

文章目录 1. 简介红黑树 and 红黑树的性质2. 在红黑树中操作元素2.1 在红黑树中查找一个元素2.2 在红黑树中插入元素 3. 手撕红黑树4. 通过总体聊聊AVL树和红黑树 1. 简介红黑树 and 红黑树的性质 我们在前面学习过二叉树&#xff0c;而二叉树有被简单的分为普通二叉树&#x…

git常用命令之Rebase

6. Rebase 命令作用延展阅读git rebase origin/release以origin/release的代码为基础变基自证 场景1&#xff1a;一次基于 rebase 的代码提交 命令作用延展阅读1. git fetch2. git checkout -b dev2 origin/dev23. date >> 1.txt && git add . && git…

HTML <img> 标签

浏览器支持 元素ChromeIEFirefoxSafariOpera<img>YesYesYesYesYes所有浏览器都支持 <img> 标签。 定义和用法 img 元素向网页中嵌入一幅图像。 请注意,从技术上讲,<img> 标签并不会在网页中插入图像,而是从网页上链接图像。<img> 标签创建的是被…

修改鼠标指针的样式,让鼠标变成动态个性化图标,让你的鼠标图标更炫酷起来。

我鼠标修改后的样式&#xff1a; 它其实时一个动态的&#xff0c;鼠标按钮的蓝色部分一直会在一闪一闪的。当然还有好几种颜色的闪烁。 首先打开控制面板–>搜索鼠标。 如下图&#xff1a; 找到 一个鼠标指针图片下载网站&#xff0c;如下图&#xff1a; 然后下载其中想要…

何不给你单调的鼠标指针换一个好看的样式?(Windows系统下)

鼠标指针是我们日常操控电脑最基本的工具&#xff0c;用久了难免会有些单调。换一个更好看或更炫酷的皮肤&#xff0c;或许会给你带来不一样的心情&#xff01; 这是我新换的鼠标指针样式&#xff0c;是不是很有意思。 访问这个网站&#xff1a;点击跳转 里面有几百种鼠标指针…

计算机怎么改鼠标标志,图文帮你如何自定义电脑鼠标指针的图标

电脑现已成为我们工作、生活和娱乐必不可少的工具了&#xff0c;在使用电脑的过程中&#xff0c;可能会遇到如何自定义电脑鼠标指针的图标的问题&#xff0c;如果我们遇到了如何自定义电脑鼠标指针的图标的情况&#xff0c;该怎么处理怎么才能解决如何自定义电脑鼠标指针的图标…

自定义鼠标指针

/// <summary> /// 改变鼠标指针 /// </summary> /// <param name"cursor"></param> /// <param name"hotPoint"></param> public void SetCursor(Bitmap cursor, Point hotPoint) {int hotX hotPoint.X;int hotY h…