目录
介绍
下载
下载迟钝或进不去网站解决方法
安装
直接下一步
勾选协议
添加环境+快捷方式
建议改路径
点击安装
安装中
安装乐成
检测安装
命令提示符检测
输入 cmake --verison
简单入门
构建新项目
选择CMake项目
建议更改路径
创建乐成
项目结构分析
CMakeLists.txt
CMakePresets.json
Demo.cpp
Demo.h
怎样使用这些文件
在命令行中构建项目
使用 Visual Studio 构建项目
注意事项
项目分析
CMakeLists.txt
CMakePresets.json
CMakePresets.json 文件的作用
简化构建设置:
跨平台构建:
IDE 集成:
脚本化构建:
CMakePresets.json 文件的结构
解释示例
使用 CMakePresets.json 文件
Demo.cpp
Demo.h
项目运行
完结散花
介绍
- CMake 是一个跨平台的自动化构建系统,它使用设置文件(CMakeLists.txt)来天生尺度的构建文件,如Unix的Makefile或Windows的Visual Studio解决方案。
- CMake 能够处理项目标组织、编译器选项、库依赖和目标文件的天生。
- CMake 并不直接受理依赖,但它可以找到已安装在系统上的库,并根据须要天生适当的链接指令。
- CMake 常用于C和C++项目,尤其是那些须要跨平台支持的项目。
下载
CMake 官网- https://cmake.org/
两者都可以
都会跳到 https://github.com/Kitware/CMake
下载迟钝或进不去网站解决方法
考虑部分同学的网络有点慢,
大概须要VPN,公棕号 wmcode 回复 【 vpn 】即可
安装
直接下一步
勾选协议
添加环境+快捷方式
建议改路径
点击安装
安装中
安装乐成
检测安装
命令提示符检测
Ctrl + R 输入 cmd
输入 cmake --verison
假如有版本则安装乐成
简单入门
我们直接创建简单的项目
构建新项目
选择CMake项目
建议更改路径
创建乐成
可以看到它帮我们已经创建好了相关的文件
项目结构分析
- Demo/
- │
- ├── CMakeLists.txt # 主项目的 CMake 配置文件
- ├── CMakePresets.json # 用于存储 CMake 的构建预设(presets)
- ├── Demo.cpp # 项目 源文件
- ├── Demo.h # 项目 头文件
复制代码 让我们来简单分析一下每个文件的作用:
- CMakeLists.txt
- 这是 CMake 的重要设置文件,其中包罗了构建项目所需的指令和规则。在这个文件里,你可以指定源代码文件、库依赖、编译选项、天生的目标以及其他与构建相关的设置。
- CMakePresets.json
- 如之前所述,这是一个 JSON 文件,用于存储 CMake 构建预设。这些预设可以包括构建范例(如 Debug 或 Release)、天生器(如 Ninja 或 Visual Studio)、构建目录位置等信息。这样可以在差别的环境中快速设置并运行 CMake。
- Demo.cpp
- 这是你的源代码文件,包罗了实现程序功能的具体代码。
- Demo.h
- 这是头文件,一般用来声明类、函数原型和其他公共接口。在 C++ 中,头文件通常包罗在多个源文件中,以便于重用代码。
怎样使用这些文件
当你准备好构建项目时,可以使用 CMake 从 CMakeLists.txt 文件天生构建文件。这些构建文件可以被构建工具(如 MSBuild 或 Ninja)用来编译和链接源代码。
在命令行中构建项目
假如你想要手动构建项目,可以通过命令行来实验 CMake 和构建命令。假设你想在一个名为 build 的子目录中构建 Debug 版本,可以按照以下步骤操纵:
- 打开命令提示符或终端窗口。
- 导航到项目根目录。
- 创建一个构建目录(假如尚未创建):
- 切换到构建目录:
- 运行 CMake 来设置构建系统:
- 1cmake -DCMAKE_BUILD_TYPE=Debug ..
复制代码 - 构建项目:
使用 Visual Studio 构建项目
假如你使用的是 Visual Studio,你可以直接打开项目解决方案文件(.sln 文件),然后选择要构建的设置(Debug 或 Release),并使用 Visual Studio 的构建菜单或快捷键来构建项目。
注意事项
- 确保 CMakeLists.txt 文件精确设置了你的项目,包括添加源文件、定义目标等。
- 假如你在使用 CMakePresets.json 文件时碰到标题,确保它的格式精确而且与你的构建需求相匹配。
- 假如你对某些 CMake 指令不认识,查阅官方文档或在线资源会有资助。
项目分析
CMakeLists.txt
- # CMakeList.txt: Demo 的 CMake 项目,在此处包括源代码并定义
- # 项目特定的逻辑。
- #
- cmake_minimum_required (VERSION 3.8)
- # 如果支持,请为 MSVC 编译器启用热重载。
- if (POLICY CMP0141)
- cmake_policy(SET CMP0141 NEW)
- set(CMAKE_MSVC_DEBUG_INFORMATION_FORMAT "$<IF:$<AND:$<C_COMPILER_ID:MSVC>,$<CXX_COMPILER_ID:MSVC>>,$<$<CONFIG:Debug,RelWithDebInfo>:EditAndContinue>,$<$<CONFIG:Debug,RelWithDebInfo>:ProgramDatabase>>")
- endif()
- project ("Demo")
- # 将源代码添加到此项目的可执行文件。
- add_executable (Demo "Demo.cpp" "Demo.h")
- if (CMAKE_VERSION VERSION_GREATER 3.12)
- set_property(TARGET Demo PROPERTY CXX_STANDARD 20)
- endif()
- # TODO: 如有需要,请添加测试并安装目标。
复制代码 CMakePresets.json
CMakePresets.json 文件的作用
- 简化构建设置:
- 存储构建选项,如构建目录、天生器、编译器选项等。
- 允许快速切换构建设置。
- 跨平台构建:
- 支持差别平台的构建设置。
- 方便在差别操纵系统间共享构建设置。
- IDE 集成:
- 许多当代 IDE 和构建工具支持读取 CMakePresets.json 文件来自动设置构建环境。
- 脚本化构建:
- 可以通过脚本调用 cmake 命令来使用预设设置,简化构建过程。
CMakePresets.json 文件的结构
CMakePresets.json 文件通常包罗以下部分:
- version:指定 CMake Presets 规范的版本。
- vendor:可选部分,用于存储特定于某个工具的信息。
- configurePresets:一组设置预设。
- buildPresets:一组构建预设。
- testPresets:一组测试预设。
- {
- "version": 3,
- "configurePresets": [
- {
- "name": "windows-base",
- "hidden": true,
- "generator": "Ninja",
- "binaryDir": "${sourceDir}/out/build/${presetName}",
- "installDir": "${sourceDir}/out/install/${presetName}",
- "cacheVariables": {
- "CMAKE_C_COMPILER": "cl.exe",
- "CMAKE_CXX_COMPILER": "cl.exe"
- },
- "condition": {
- "type": "equals",
- "lhs": "${hostSystemName}",
- "rhs": "Windows"
- }
- },
- {
- "name": "x64-debug",
- "displayName": "x64 Debug",
- "inherits": "windows-base",
- "architecture": {
- "value": "x64",
- "strategy": "external"
- },
- "cacheVariables": {
- "CMAKE_BUILD_TYPE": "Debug"
- }
- },
- {
- "name": "x64-release",
- "displayName": "x64 Release",
- "inherits": "x64-debug",
- "cacheVariables": {
- "CMAKE_BUILD_TYPE": "Release"
- }
- },
- {
- "name": "x86-debug",
- "displayName": "x86 Debug",
- "inherits": "windows-base",
- "architecture": {
- "value": "x86",
- "strategy": "external"
- },
- "cacheVariables": {
- "CMAKE_BUILD_TYPE": "Debug"
- }
- },
- {
- "name": "x86-release",
- "displayName": "x86 Release",
- "inherits": "x86-debug",
- "cacheVariables": {
- "CMAKE_BUILD_TYPE": "Release"
- }
- }
- ]
- }
复制代码 解释示例
- configurePresets:定义了两个设置预设,分别是 debug 和 release。
- name:预设名称。
- displayName:表现名称,用于用户界面。
- description:描述。
- generator:构建天生器,如 Ninja。
- binaryDir:构建目录。
- cacheVariables:CMake 缓存变量,如 CMAKE_BUILD_TYPE。
- buildPresets:定义了两个构建预设,分别对应 debug 和 release 设置预设。
- name:预设名称。
- configurePreset:关联的设置预设名称。
- testPresets:定义了测试预设,用于运行测试。
- name:预设名称。
- configurePreset:关联的设置预设名称。
使用 CMakePresets.json 文件
一旦你有了 CMakePresets.json 文件,就可以通过各种工具来使用这些预设。比方,你可以使用 cmake 命令行工具来构建项目:
- cmake --preset debug
- cmake --build debug
复制代码
Demo.cpp
- // Demo.cpp: 定义应用程序的入口点。
- //
- #include "Demo.h"
- using namespace std;
- int main()
- {
- cout << "Hello CMake." << endl;
- return 0;
- }
复制代码 Demo.h
- // Demo.h: 标准系统包含文件的包含文件
- // 或项目特定的包含文件。
- #pragma once
- #include <iostream>
- // TODO: 在此处引用程序需要的其他标头。
复制代码
项目运行
完结散花
以上便是我个人学习过程中,慢慢笔记的
(到底啦)
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |