├── CMakeLists.txt
└── main.c
main.c
#include <stdio.h> int main(int argc, char *argv[]) { printf("build-type:cmake\r\n"); return 0; }
# 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