c/c++开发时为了可以快速编译发布,makefile是必不可少的。但是makefile下linux(gcc)和windows(msvc)下没法很好的兼容。windows下vs studio ide优势很大(个人感觉).所以认为CMake是个不错的选择。
这样就可以ubuntu(vscode+gcc),windows(vs 2022) 开发。
起点
新增文件CMakeLists.txt
cmake_minimum_required(VERSION 3.10)
# set the project name
project(Tutorial)
# add the executable
add_executable(Tutorial tutorial.cxx)
编译生成
mkdir build
cd build
cmake ..
cmake --build .
版本号
cmake_minimum_required(VERSION 3.10)
# set the project name and version
project(Tutorial VERSION 1.0)
configure_file(TutorialConfig.h.in TutorialConfig.h)
target_include_directories(${PROJECT_NAME} PUBLIC "${PROJECT_BINARY_DIR}" ) # 加在最后
TutorialConfig.h.in 文件内容
#define Tutorial_VERSION_MAJOR @Tutorial_VERSION_MAJOR@
#define Tutorial_VERSION_MINOR @Tutorial_VERSION_MINOR@
使用方法
#include "TutorialConfig.h"
int main(){
printf("version: %d.%d\n",Tutorial_VERSION_MAJOR ,Tutorial_VERSION_MINOR );
return 0;
}
c/c++标准
c 标准
set(CMAKE_C_STANDARD 99)
c++ 标准
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED True)
set(CMAKE_CXX_EXTENSIONS OFF)