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)