SET(CMAKE_SOURCE_DIR .) SET(CMAKE_CXX_FLAGS_DEBUG"$ENV{CXXFLAGS} -O0 -Wall -g -ggdb") SET(CMAKE_CXX_FLAGS_RELEASE"$ENV{CXXFLAGS} -O3 -Wall") AUX_SOURCE_DIRECTORY(. DIR_SRCS) ADD_EXECUTABLE(main ${DIR_SRCS}) # CMAKE generated file: DO NOT EDIT!# Generated by"Unix Makefiles...
CMakeCache.txt:CMAKE_CXX_FLAGS_RELEASE:STRING=-O3 -DNDEBUGCMakeCache.txt:CMAKE_C_FLAGS_RELEASE:STRING=-O3 -DNDEBUGCMakeFiles/main.dir/flags.make:CXX_FLAGS = -O3 -Wall CMakeFiles/main.dir/link.txt:/usr/bin/c++ -O3 -Wall CMakeFiles/main.dir/main.cpp.o -o main -rdynamic CMakeList...
MinSizeRel 模式:-Os -DNDEBUG,(较少见)多用于嵌入式,侧重于优化文件的体积 (Release 侧重于优化运行速度) RelWithDebInfo 模式:-O2 -g -DNDEBUG,(较少见)在 Release 模式的基础上,加入一些调试信息 在使用 cmake 时往往需要指定编译模式,在讨论之前我们需要对构建系统进行分类: single config...
cmake_minimum_required(VERSION 3.0)# 设置 CMake 的最低版本要求 project(MyProject VERSION 1.0)# 设置项目名称和版本 project(CONTROLLER_NAME VERSION 1.0 LANGUAGES CXX)#指明项目使用的编程语言是 C++ SET(CMAKE_BUILD_TYPE "Release")# 设置构建类型 SET(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3 ...
指定构建类型,例如Debug, Release --CMAKE_C_FLAGS 指定C编译器配置 --CMAKE_CXX_FLAGS 指定C++编译器配置 --CMAKE_INSTALL_PREFIX 指定安装的路径前缀 --CMAKE_EXE_LINKER_FLAGS 创建可执行文件时,定义链接器的配置 --CMAKE_MODULE_LINKER_FLAGS
在用cmake生成工程文件(such as Makefile)编译项目的时候,有时我们希望debug/release生成的二进制文件在文件名上有区别: 比如对于target project1,在debug模式编译的dll,希望在Debug模式下生成的文件名为project1_d.dll,以与release模式下编译的project1.dll区别开。该怎么实现呢?
在build目录下我们执行cmake -DMAKE_BUILD_TYPE=Debug ..,编译命令会使用-g 在release目录下我们执行cmake -DMAKE_BUILD_TYPE=Release ..,编译命令会使用-O3 -DNDEBUG 所以,在源代码中,我们可以使用NDEBUG宏来控制,在开发版输出调试信息,而在发布版本去掉调试信息。
点击链接(点击不了,复制链接地址到浏览器即可)进入cmake官网下载网页,下载最新稳定版即可(Latest Release) 我这里下载的是cmake-3.26.4-windows-x86_64.msi(PS: 根据个人电脑windows系统位数下载对应的版本) 若不想安装,可直接下载压缩包版本cmake-3.26.4-windows-x86_64.zip。
可以使用cacheVariables.CMAKE_BUILD_TYPE为单个配置生成器设置配置类型(Debug或Release)。 这等效于从命令行将-D CMAKE_BUILD_TYPE=<value>传递到 CMake。 有关详细信息,请参阅CMAKE_BUILD_TYPE。 在使用 Visual C++ 工具集进行生成时,选择目标体系结构和主机体系结构 ...
對應於configurationType設定。 定義所選產生器的組建組態類型。 目前支援的值為 "Debug"、"MinSizeRel"、"Release" 和 "RelWithDebInfo"。 它會對應至CMAKE_BUILD_TYPE。 工具組 對應於inheritedEnvironments設定。 定義將用來建置所選組態的編譯器環境。 支援的值取決於組態的類型。 若要建立自訂環境,請選擇「設定...