使用清单模式入门 您所在的位置:网站首页 vcpkg教程 使用清单模式入门

使用清单模式入门

#使用清单模式入门 | 来源: 网络整理| 查看: 265

清单模式:CMake 示例 项目 04/21/2023

在本教程中,你将使用开放源代码库 fmt、range-v3 和 cxxopts 创建 CMake 项目。

步骤 1。 安装 vcpkg

使用 Git 下载 vcpkg 并运行 bootstrap 以获取该工具。

D:\src> git clone https://github.com/microsoft/vcpkg Cloning into 'vcpkg'... remote: Enumerating objects: 190163, done. remote: Counting objects: 100% (1565/1565), done. remote: Compressing objects: 100% (590/590), done. remote: Total 190163 (delta 1041), reused 1436 (delta 975), pack-reused 188598 Receiving objects: 100% (190163/190163), 70.97 MiB | 20.73 MiB/s, done. Resolving deltas: 100% (122381/122381), done. Updating files: 100% (10014/10014), done. D:\src> cd vcpkg D:\src\vcpkg> .\bootstrap-vcpkg.bat

在本教程的其余部分中,假设已将 vcpkg 克隆到 D:\src\vcpkg。

步骤 2. 创建项目

我们的项目将具有以下文件布局:

fibo/ main.cxx CMakeLists.txt vcpkg.json

首先,使用以下内容创建 CMakeLists.txt :

cmake_minimum_required(VERSION 3.15) project(fibonacci CXX) find_package(fmt REQUIRED) find_package(range-v3 REQUIRED) find_package(cxxopts REQUIRED) set(CMAKE_CXX_STANDARD 17) add_executable(fibo main.cxx) target_link_libraries(fibo PRIVATE fmt::fmt range-v3::range-v3 cxxopts::cxxopts)

接下来,使用以下内容创建 main.cxx :

#include #include #include namespace view = ranges::views; int fib(int x) { int a = 0, b = 1; for (int it : view::repeat(0) | view::take(x)) { (void)it; int tmp = a; a += b; b = tmp; } return a; } int main(int argc, char **argv) { cxxopts::Options options("fibo", "Print the fibonacci sequence up to a value 'n'"); options.add_options()("n,value", "The value to print to", cxxopts::value()->default_value("10")); auto result = options.parse(argc, argv); auto n = result["value"].as(); for (int x : view::iota(1) | view::take(n)) { fmt::print("fib({}) = {}\n", x, fib(x)); } }

最后,我们将在列出开放源代码依赖项的项目所在的同一CMakeLists.txt目录中创建 vcpkg.json :

{ "dependencies": [ "cxxopts", "fmt", "range-v3" ] } 步骤 3. 配置和生成

在打开到项目目录的 开发人员命令提示 中 fibo/ ,运行 cmake 以使用 vcpkg 工具链文件配置项目。 vcpkg 将在配置步骤中运行,以生成开放源代码依赖项并将其提供给 find_package()。

D:\src\fibo> cmake -B build -S . -DCMAKE_TOOLCHAIN_FILE=D:\src\vcpkg\scripts\buildsystems\vcpkg.cmake -- Running vcpkg install Detecting compiler hash for triplet x64-windows... The following packages will be built and installed: cxxopts[core]:x64-windows fmt[core]:x64-windows range-v3[core]:x64-windows Starting package 1/3: cxxopts:x64-windows ... Total elapsed time: 1.742 s -- Running vcpkg install - done -- Selecting Windows SDK version 10.0.18362.0 to target Windows 10.0.19041. -- The CXX compiler identification is MSVC 19.27.29111.0 -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.27.29110/bin/Hostx64/x64/cl.exe - skipped -- Detecting CXX compile features -- Detecting CXX compile features - done -- Configuring done -- Generating done -- Build files have been written to: D:/src/fibo/build

配置步骤完成后,使用 cmake --build build生成项目:

D:\src\fibo> cmake --build build Microsoft (R) Build Engine version 16.7.0+b89cb5fde for .NET Framework Copyright (C) Microsoft Corporation. All rights reserved. Checking Build System Building Custom Rule D:/src/fibo/CMakeLists.txt main.cxx fibo.vcxproj -> D:\src\fibo\build\Debug\fibo.exe Building Custom Rule D:/src/fibo/CMakeLists.txt

最后,可以直接从调试目录 (build\Debug\fibo.exe) 运行生成程序。

D:\src\fibo> .\build\Debug\fibo.exe -n 7 fib(1) = 1 fib(2) = 1 fib(3) = 2 fib(4) = 3 fib(5) = 5 fib(6) = 8 fib(7) = 13 后续步骤

在本教程中,你使用多个开放源代码库创建了一个简单的命令行应用程序。

此项目的后续步骤包括:

使用版本控制锁定可重复生成的 版本 使用二进制缓存在持续集成运行中重复使用二进制文件 使用自定义注册表通过 vcpkg 管理专用库


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有