set(CMAKE_BUILD_TYPE "Debug")

时间: 2023-11-05 14:04:48 浏览: 38
这段代码是用来设置CMake构建类型为Debug模式,以便在调试程序时能够更方便地查看程序运行情况。 使用set()命令设置CMAKE_BUILD_TYPE变量为Debug,即将构建类型设置为Debug模式。在Debug模式下,编译器会生成调试信息,以便在调试程序时能够更方便地查看程序运行情况。 需要注意的是,使用这段代码前,需要确保编译器支持Debug模式。如果编译器不支持Debug模式,则会编译失败。
相关问题

cmake_build安装

cmake_build_action是一个用于构建CMake项目的操作。它可以更新子模块,添加CMake参数,并支持运行测试和构建单元测试。你可以使用以下代码来设置CMake构建动作: ```yaml name: Build project uses: nicledomaS/cmake_build_action@v1.4 with: submodule_update: ON run_tests: ON unit_test_build: ON ``` 关于CMake的代码,你可以使用以下代码来生成产物: ```cmake set(BUILD_SHARED_LIBS ON) # 默认值是OFF add_library(${PROJECT_NAME} ${SRCS_MAIN}) ``` 根据引用,CMake中的两个关键变量是CMAKE_BUILD_TYPE和BUILD_SHARED_LIBS。CMAKE_BUILD_TYPE用于指定构建类型(例如Debug、Release),而BUILD_SHARED_LIBS用于指定是否构建共享库。

execute_process(COMMAND sh -c "git symbolic-ref --short -q HEAD" OUTPUT_VARIABLE GIT_BRANCH OUTPUT_STRIP_TRAILING_WHITESPACE) execute_process(COMMAND sh -c "git rev-list HEAD --abbrev=8 --abbrev-commit --max-count=1" OUTPUT_VARIABLE GIT_LAST_COMMIT OUTPUT_STRIP_TRAILING_WHITESPACE) execute_process(COMMAND sh -c "git rev-list HEAD --count" OUTPUT_VARIABLE GIT_COMMITS_NUM OUTPUT_STRIP_TRAILING_WHITESPACE) execute_process(COMMAND sh -c "git status --short --untracked-files=no | wc -l" OUTPUT_VARIABLE GIT_DIFF_STATUS OUTPUT_STRIP_TRAILING_WHITESPACE) if ( ${GIT_DIFF_STATUS} EQUAL "0" ) set(BUILD_VERSION "R${GIT_LAST_COMMIT}_${GIT_BRANCH}") else() set(BUILD_VERSION "R${GIT_LAST_COMMIT}M_${GIT_BRANCH}") endif() #build date string(TIMESTAMP DATETIME "%Y%m%d%H%M%S") #enable gdb debug symbol if (NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE "Release") message (STATUS "No CMAKE_BUILD_TYPE selected, defaulting to ${CMAKE_BUILD_TYPE}") endif() message (STATUS "The CMAKE_BUILD_TYPE is selected to ${CMAKE_BUILD_TYPE}") set(CMAKE_CXX_FLAGS_BASE "$ENV{CXXFLAGS} -pipe -Wall -Wno-unknown-pragmas -Wno-format-zero-length -lrt -Wno-ignored-attributes") #set(CMAKE_CXX_FLAGS_BASE "${CMAKE_CXX_FLAGS_BASE} -save-temps") set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_BASE} -O2 -g") set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_BASE} -O3") #set(CMAKE_DEBUG_POSTFIX _D) set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE "${CMAKE_COMMAND} -E time") set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK "${CMAKE_COMMAND} -E time")

这段代码执行了一系列的命令,获取了与Git相关的信息,并设置了构建的版本号和日期。 首先,使用`execute_process`命令执行了一系列的`git`命令来获取Git的分支、最后一次提交、提交数量和文件差异状态的信息,并将结果保存到相应的变量中。 接下来,使用条件语句判断`${GIT_DIFF_STATUS}`的值是否为0。如果是0,说明没有文件差异,那么将构建版本号设置为"R${GIT_LAST_COMMIT}_${GIT_BRANCH}";否则,将构建版本号设置为"R${GIT_LAST_COMMIT}M_${GIT_BRANCH}"。 然后,使用`string(TIMESTAMP ...)`命令获取当前的日期和时间,并将结果保存到`DATETIME`变量中。 接着,检查是否定义了`CMAKE_BUILD_TYPE`变量。如果没有定义,将其设置为"Release",并输出一条消息表示默认使用了该选项。 然后,设置了编译器的基本选项`CMAKE_CXX_FLAGS_BASE`,包括一些通用的编译选项和库链接选项。 接着,根据构建类型设置了不同的编译选项。对于Debug类型,使用`-O2 -g`,表示开启优化级别2和调试符号。对于Release类型,使用`-O3`,表示开启优化级别3。 最后,通过`set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ...)`和`set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ...)`命令设置了编译和链接命令的时间控制,用于输出编译和链接的时间信息。 总之,这段代码通过执行Git相关的命令获取了版本和日期信息,并设置了相应的变量和编译选项。

相关推荐

解释根据给出的代码,可以将其转化为以下CMake代码: 复制 cmake_minimum_required(VERSION 3.5) project(UavRectifyLoadLIb LANGUAGES CXX) set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) set(CMAKE_AUTOUIC ON) find_package(Qt5Core REQUIRED) add_executable(UavRectifyLoadLIb main.cpp ) target_link_libraries(UavRectifyLoadLIb PRIVATE Qt5::Core UAVAutoRectifyMt UAVAutoRectify UAVAutoRectifyFi DEMDriver Projection IImage_gC opencv_core opencv_highgui opencv_imgproc opencv_features2d opencv_imgcodecs ) target_include_directories(UavRectifyLoadLIb PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../../../include/gdal1101 ${CMAKE_CURRENT_SOURCE_DIR}/../include ${CMAKE_CURRENT_SOURCE_DIR}/../../../lib/opencvf249 ${CMAKE_CURRENT_SOURCE_DIR}/../../../../../../../usr/local/include ) if(UNIX AND NOT APPLE) target_link_directories(UavRectifyLoadLIb PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../../../product/release32 ${CMAKE_CURRENT_SOURCE_DIR}/../../../../../../../usr/local/lib ) endif() if(WIN32) if(CMAKE_BUILD_TYPE STREQUAL "Debug") set_target_properties(UavRectifyLoadLIb PROPERTIES RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_CURRENT_SOURCE_DIR}/../../../../RasterManager/bin/Debug ) else() set_target_properties(UavRectifyLoadLIb PROPERTIES RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_CURRENT_SOURCE_DIR}/../../../../RasterManager/bin/release ) endif() else() if(CMAKE_BUILD_TYPE STREQUAL "Debug") set_target_properties(UavRectifyLoadLIb PROPERTIES RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_CURRENT_SOURCE_DIR}/../../../product/release32 ) else() set_target_properties(UavRectifyLoadLIb PROPERTIES RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_CURRENT_SOURCE_DIR}/../../../product/release32 ) endif() endif()

最新推荐

recommend-type

基于AT89C51单片机的三电梯联动控制系统+全部资料+详细文档(高分项目).zip

【资源说明】 基于AT89C51单片机的三电梯联动控制系统+全部资料+详细文档(高分项目).zip基于AT89C51单片机的三电梯联动控制系统+全部资料+详细文档(高分项目).zip基于AT89C51单片机的三电梯联动控制系统+全部资料+详细文档(高分项目).zip 【备注】 1、该项目是个人高分项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(人工智能、通信工程、自动化、电子信息、物联网等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!
recommend-type

梯度下降算法:介绍梯度下降算法 实例说明其运行原理

梯度下降算法,介绍梯度下降算法 实例说明其运行原理,供学习参考。
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

list根据id查询pid 然后依次获取到所有的子节点数据

可以使用递归的方式来实现根据id查询pid并获取所有子节点数据。具体实现可以参考以下代码: ``` def get_children_nodes(nodes, parent_id): children = [] for node in nodes: if node['pid'] == parent_id: node['children'] = get_children_nodes(nodes, node['id']) children.append(node) return children # 测试数
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。
recommend-type

"互动学习:行动中的多样性与论文攻读经历"

多样性她- 事实上SCI NCES你的时间表ECOLEDO C Tora SC和NCESPOUR l’Ingén学习互动,互动学习以行动为中心的强化学习学会互动,互动学习,以行动为中心的强化学习计算机科学博士论文于2021年9月28日在Villeneuve d'Asq公开支持马修·瑟林评审团主席法布里斯·勒菲弗尔阿维尼翁大学教授论文指导奥利维尔·皮耶昆谷歌研究教授:智囊团论文联合主任菲利普·普雷教授,大学。里尔/CRISTAL/因里亚报告员奥利维耶·西格德索邦大学报告员卢多维奇·德诺耶教授,Facebook /索邦大学审查员越南圣迈IMT Atlantic高级讲师邀请弗洛里安·斯特鲁布博士,Deepmind对于那些及时看到自己错误的人...3谢谢你首先,我要感谢我的两位博士生导师Olivier和Philippe。奥利维尔,"站在巨人的肩膀上"这句话对你来说完全有意义了。从科学上讲,你知道在这篇论文的(许多)错误中,你是我可以依
recommend-type

实现实时监控告警系统:Kafka与Grafana整合

![实现实时监控告警系统:Kafka与Grafana整合](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X2pwZy9BVldpY3ladXVDbEZpY1pLWmw2bUVaWXFUcEdLT1VDdkxRSmQxZXB5R1lxaWNlUjA2c0hFek5Qc3FyRktudFF1VDMxQVl3QTRXV2lhSWFRMEFRc0I1cW1ZOGcvNjQw?x-oss-process=image/format,png) # 1.1 Kafka集群架构 Kafka集群由多个称为代理的服务器组成,这
recommend-type

未定义标识符CFileFind

CFileFind 是MFC(Microsoft Foundation Class)中的一个类,用于在Windows文件系统中搜索文件和目录。如果你在使用CFileFind时出现了“未定义标识符”的错误,可能是因为你没有包含MFC头文件或者没有链接MFC库。你可以检查一下你的代码中是否包含了以下头文件: ```cpp #include <afx.h> ``` 另外,如果你在使用Visual Studio开发,还需要在项目属性中将“使用MFC”设置为“使用MFC的共享DLL”。这样才能正确链接MFC库。