ToB企服应用市场:ToB评测及商务社交产业平台
标题:
Windows系统中 CMake 快速图解入门 ( 解决你的开发环境 )
[打印本页]
作者:
石小疯
时间:
2024-7-31 22:19
标题:
Windows系统中 CMake 快速图解入门 ( 解决你的开发环境 )
目录
介绍
下载
下载迟钝或进不去网站解决方法
安装
直接下一步
勾选协议
添加环境+快捷方式
建议改路径
点击安装
安装中
安装乐成
检测安装
命令提示符检测
输入 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 版本,可以按照以下步骤操纵:
打开命令提示符或终端窗口。
导航到项目根目录。
创建一个构建目录(假如尚未创建):
1mkdir build
复制代码
切换到构建目录:
1cd build
复制代码
运行 CMake 来设置构建系统:
1cmake -DCMAKE_BUILD_TYPE=Debug ..
复制代码
构建项目:
1cmake --build .
复制代码
使用 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企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4