Exercise 1 - Building a Basic Project
新建目录:s1e1
新建CmakeLists.txt:
cmake_minimum_required(VERSION 3.2.8)
project(s1e1)
add_executable(s1e1 main.cpp)
测试程序:
#include<iostream>
int main(){
std::cout<<"hello Cmake";
return 0;
}
cmd命令:
mkdir s1e1_build
cd s1e1_build
cmake ..
cmake --build .
cd debug
./s1e1.exe
//默认msvc
Exercise 2 - Specifying the C++ Standard¶
在CmakeLists.txt添加
set(CMAKE_CXX_STANDARD 23)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
Exercise 3 - Adding a Version Number and Configured Header File
1.新建s1e1Config.h.in
#define s1e1_VERSION_MAJOR @s1e1_VERSION_MAJOR@
#define s1e1_VERSION_MINOR ${s1e1_VERSION_MINOR}
2.CmakeLists.txt
更新
cmake_minimum_required(VERSION 3.2.8)
project(s1e1 VERSION 1.0)
set(CMAKE_CXX_STANDARD 23)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
add_executable(s1e1 main.cpp)
configure_file(s1e1Config.h.in s1e1Config.h)
target_include_directories(s1e1 PUBLIC ${CMAKE_BINARY_DIR})
3.main.cpp更新
#include<iostream>
#include"s1e1Config.h"
int main(int argc,char *argv[]){
std::cout<<"hello Cmake\n";
if (argc < 2) {
// report version
std::cout << argv[0] << " Version " << s1e1_VERSION_MAJOR << "."
<< s1e1_VERSION_MINOR << std::endl;
std::cout << "Usage: " << argv[0] << " number" << std::endl;
return 1;
}
return 0;
}
cd s1e1_build
cmake ..
cmake --build .
输出
hello Cmake
D:\code\cpps\s1e1\s1e1_build\Debug\s1e1.exe Version 1.0
Usage: D:\code\cpps\s1e1\s1e1_build\Debug\s1e1.exe number
评论区