C/C++教程

CMake系列(五) CMake配置编译类型

本文主要是介绍CMake系列(五) CMake配置编译类型,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

CMake系列(五) CMake配置编译类型

文章目录

  • CMake系列(五) CMake配置编译类型
    • 目录结构
    • 源文件
    • CMakeLists.txt
    • 编译
    • 说明
      • 构建级别
      • 设置编译级别的方式


目录结构

├── CMakeLists.txt
└── main.c

源文件

main.c

#include <stdio.h>
int main(int argc, char *argv[])
{
    printf("build-type:cmake\r\n");
    return 0;
}

CMakeLists.txt

# Set the minimum version of CMake that can be used
# To find the cmake version run
# $ cmake --version
cmake_minimum_required(VERSION 3.5)

# Set a default build type if none was specified
if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
  message("Setting build type to 'RelWithDebInfo' as none was specified.")
  set(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING "Choose the type of build." FORCE)
  # Set the possible values of build type for cmake-gui
  set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release"
    "MinSizeRel" "RelWithDebInfo")
endif()

# Set the project name
project (build_type)

# Add an executable
add_executable(cmake_examples_build_type main.c)

编译

	$  mkdir build
	$  cd build/
	$  cmake .. -DCMAKE_BUILD_TYPE=Release
	$  make VERBOSE=1 (打印详细的编译信息)

说明

构建级别

Make具有许多内置的构建配置,可用于编译工程。 这些配置指定了代码优化的级别,以及调试信息是否包含在二进制文件中。

这些优化级别,主要有:

Release —— 不可以打断点调试,程序开发完成后发行使用的版本,占的体积小。 它对代码做了优化,因此速度会非常快,
在编译器中使用命令: -O3 -DNDEBUG 可选择此版本。
Debug ——调试的版本,体积大。
在编译器中使用命令: -g 可选择此版本。
MinSizeRel—— 最小体积版本
在编译器中使用命令:-Os -DNDEBUG可选择此版本。
RelWithDebInfo—— 既优化又能调试。
在编译器中使用命令:-O2 -g -DNDEBUG可选择此版本。

设置编译级别的方式

方式1:使用CMake图形界面
在这里插入图片描述方式2:使用CMake命令行

cmake .. -DCMAKE_BUILD_TYPE=Release
cmake .. -DCMAKE_BUILD_TYPE=Debug
这篇关于CMake系列(五) CMake配置编译类型的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!