构建Hello World(将单个源文件编译为可执行文件)
测试文件结构
- hello_world.cpp 源文件
- CMakeLists.txt 构建文件
- build 用于存放项目和编译结构的路径(待创建)
hello_world.cpp 源文件
#include<iostream>
using namespace std;
int main(){
std::cout<<"hello world;" << endl;
}
CMakeLists.txt
# 设定需要的cmake最低版本,如果不符合 致命错误
cmake_minimum_required(VERSION 3.5 FATAL_ERROR)
# 设定项目名称和语言类型
project(hello_world LANGUAGES CXX)
# 指定需要生成的可执行文件名称 和对应的源文件
add_executable(hello_world hello_world.cpp)
开始编译
- 构建项目
make build
cd build
cmake ..
- 编译成可执行文件
cmake --build .
3. 测试可执行文件
生成器的切换
查看所支持的生成器
- 查看
cmake --help
Generators
The following generators are available on this platform (* marks default):
Visual Studio 17 2022 = Generates Visual Studio 2022 project files.
Use -A option to specify architecture.
Visual Studio 16 2019 = Generates Visual Studio 2019 project files.
Use -A option to specify architecture.
Visual Studio 15 2017 [arch] = Generates Visual Studio 2017 project files.
Optional [arch] can be "Win64" or "ARM".
* Visual Studio 14 2015 [arch] = Generates Visual Studio 2015 project files.
Optional [arch] can be "Win64" or "ARM".
Visual Studio 12 2013 [arch] = Generates Visual Studio 2013 project files.
Optional [arch] can be "Win64" or "ARM".
Visual Studio 11 2012 [arch] = Generates Visual Studio 2012 project files.
Optional [arch] can be "Win64" or "ARM".
Visual Studio 10 2010 [arch] = Generates Visual Studio 2010 project files.
Optional [arch] can be "Win64" or "IA64".
Visual Studio 9 2008 [arch] = Generates Visual Studio 2008 project files.
Optional [arch] can be "Win64" or "IA64".
Borland Makefiles = Generates Borland makefiles.
NMake Makefiles = Generates NMake makefiles.
NMake Makefiles JOM = Generates JOM makefiles.
MSYS Makefiles = Generates MSYS makefiles.
MinGW Makefiles = Generates a make file for use with
mingw32-make.
Green Hills MULTI = Generates Green Hills MULTI files
(experimental, work-in-progress).
Unix Makefiles = Generates standard UNIX makefiles.
Ninja = Generates build.ninja files.
Ninja Multi-Config = Generates build-<Config>.ninja files.
Watcom WMake = Generates Watcom WMake makefiles.
CodeBlocks - MinGW Makefiles = Generates CodeBlocks project files.
CodeBlocks - NMake Makefiles = Generates CodeBlocks project files.
CodeBlocks - NMake Makefiles JOM
= Generates CodeBlocks project files.
CodeBlocks - Ninja = Generates CodeBlocks project files.
CodeBlocks - Unix Makefiles = Generates CodeBlocks project files.
CodeLite - MinGW Makefiles = Generates CodeLite project files.
CodeLite - NMake Makefiles = Generates CodeLite project files.
CodeLite - Ninja = Generates CodeLite project files.
CodeLite - Unix Makefiles = Generates CodeLite project files.
Eclipse CDT4 - NMake Makefiles
= Generates Eclipse CDT 4.0 project files.
Eclipse CDT4 - MinGW Makefiles
= Generates Eclipse CDT 4.0 project files.
Eclipse CDT4 - Ninja = Generates Eclipse CDT 4.0 project files.
Eclipse CDT4 - Unix Makefiles= Generates Eclipse CDT 4.0 project files.
Kate - MinGW Makefiles = Generates Kate project files.
Kate - NMake Makefiles = Generates Kate project files.
Kate - Ninja = Generates Kate project files.
Kate - Unix Makefiles = Generates Kate project files.
Sublime Text 2 - MinGW Makefiles
= Generates Sublime Text 2 project files.
Sublime Text 2 - NMake Makefiles
= Generates Sublime Text 2 project files.
Sublime Text 2 - Ninja = Generates Sublime Text 2 project files.
Sublime Text 2 - Unix Makefiles
= Generates Sublime Text 2 project files.
切换生成器
- 在构建项目的时候指定生成器
cmake -G "Visual Studio 14 2015" ..
cmake命令
cmake ..
会在父路径下找到CMakeLists.txt文件 并构建项目cmake --build .
根据当前路径下的项目编译可执行文件cmake --help
查看cmake的帮助-G
指定生成器
CMakeLists参数
add_executable(hello_world hello_world.cpp)
添加可执行文件,第一个参数是可执行文件的名称 第二个参数是可执行文件对应的cpp文件
更多推荐
CMake 入门教程(完整版-更新中)
发布评论