cmake中使用vcpkg

当然可以!你可以使用 vcpkg 来管理你的第三方依赖库,并将它们集成到 CMake 项目中。这样,你就不需要手动一个一个地添加头文件和库文件路径了。以下是一些步骤来实现这一目标:

  1. 设置 vcpkg

    • 首先,你需要从 GitHub 克隆 vcpkg 仓库¹1。这个仓库包含了获取 vcpkg 可执行文件的脚本,以及由 vcpkg 社区维护的一组经过精选的开源库的注册表。
    • 执行以下命令来克隆仓库:
      git clone https://github.com/microsoft/vcpkg.git
      
    • 然后,进入 vcpkg 目录并执行启动脚本:
      cd vcpkg && bootstrap-vcpkg.bat
      
    • 这个启动脚本会执行先决条件检查并下载 vcpkg 可执行文件。现在,vcpkg 已经设置好并准备好使用了。
  2. 配置项目

    • 配置 VCPKG_ROOT 环境变量,指向你的 vcpkg 安装目录。这告诉 vcpkg 在哪里查找库。
      • 在 Bash 中:
        export VCPKG_ROOT=/path/to/vcpkg
        export PATH=$VCPKG_ROOT:$PATH
        
      • 在 PowerShell 中:
        $env:VCPKG_ROOT = "C:\path\to\vcpkg"
        $env:PATH = "$env:VCPKG_ROOT;$env:PATH"
        
    • 创建你的项目目录:
      mkdir my_project && cd my_project
      
  3. 添加依赖和项目文件

    • 创建 CMakeLists.txt 文件并添加你的依赖项。例如,如果你想使用 fmt 库,可以在 CMakeLists.txt 中添加以下内容:
      cmake_minimum_required(VERSION 3.12)
      project(MyProject)
      
      # 设置 vcpkg 的工具链文件
      set(CMAKE_TOOLCHAIN_FILE "/path/to/vcpkg/scripts/buildsystems/vcpkg.cmake" CACHE STRING "")
      
      # 查找 fmt 库
      find_package(fmt REQUIRED)
      
      add_executable(my_app main.cpp)
      target_link_libraries(my_app PRIVATE fmt::fmt)
      
    • 然后,你可以在你的项目中使用 fmt 库,而不需要手动添加路径。

希望这对你有所帮助!如果你还有其他问题,欢迎继续提问。²2 ³5

Source: Conversation with Bing, 2024/4/29
(1) Install and use packages with CMake | Microsoft Learn. https://learn.microsoft.com/en-us/vcpkg/get_started/get-started.
(2) CMake 项目中的 vcpkg | Microsoft Learn. https://learn.microsoft.com/zh-cn/vcpkg/users/buildsystems/cmake-integration.
(3) vcpkg in CMake projects | Microsoft Learn. https://learn.microsoft.com/en-us/vcpkg/users/buildsystems/cmake-integration.
(4) 在CMake工程中使用vcpkg提供的库 - CSDN博客. https://blog.csdn.net/xiyangmo/article/details/119650550.
(5) 使用VCPKG管理你的第三方依赖 - 知乎 - 知乎专栏. https://zhuanlan.zhihu.com/p/477497540.
(6) undefined. https://github.com/microsoft/vcpkg.git.

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
[i].flightNo << "\t" << flightList[i].departure << "\t" << flightList[i].destination << "\t" << flightList[i].time << "\t" << flightList[i].price << "\t" << flightList[i].left在 CMake 使用 vcpkg ,需要指定以下几个参数: 1. `CMAKE_TOOLCHAIN_FILE`:指SeatNum << endl; } } } //航班信息添加 void addFlightInfo() { if (currentUser.username !=定 vcpkg 提供的 cmake 工具链文件路径。 2. `CMAKE_PREFIX_PATH`:指定 vcpkg 安 "admin") { //非管理员无权添加航班信息 cout << "无权添加航班信息!" << endl装的根目录。 下面是一个示例的 CMakeLists.txt 文件: ```cmake cmake_minimum_required(; return; } FlightInfo flight; cout << "请输入航班号:"; cin >> flight.flightNo; VERSION 3.0) # 设置项目名称 project(myproject) # 设置 C++ 标准 set(CMAKE_CXX_STANDARD cout << "请输入出发地:"; cin >> flight.departure; cout << "请输入目的地:"; cin11) set(CMAKE_CXX_STANDARD_REQUIRED True) # 指定 vcpkg 工具链文件路径 set(VCPKG_TOOLCHAIN >> flight.destination; cout << "请输入出发日期(格式:YYYY-MM-DD):"; cin >> flight.date; cout ${CMAKE_CURRENT_SOURCE_DIR}/vcpkg/scripts/buildsystems/vcpkg.cmake CACHE STRING "Vcpkg toolchain file << "请输入出发时间(格式:HH:MM):"; cin >> flight.time; cout << "请输入总座位") # 指定 vcpkg 的根目录 set(VCPKG_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/vcpkg 数:"; cin >> flight.seatNum; flight.leftSeatNum = flight.seatNum; cout << "请输入票价 CACHE STRING "Vcpkg root directory") # 在 cmake 引用 vcpkg 工具链文件 include(${VCPKG:"; cin >> flight.price; writeFlightInfoToFile(flight); cout << "添加成功!" << endl; } //_TOOLCHAIN}) # 设置要链接的 find_package(Boost REQUIRED COMPONENTS system thread) # 添加可执行文件 add_executable航班信息修改 void modifyFlightInfo() { if (currentUser.username != "admin") { //非管理员无权修改(myapp main.cpp) # 链接 target_link_libraries(myapp PRIVATE Boost::system Boost::thread) ``` 上述示航班信息 cout << "无权修改航班信息!" << endl; return; } string flightNo; 例,我们指定了 vcpkg 的工具链文件路径和的根目录,并在 CMakeLists.txt 文件 cout << "请输入要修改的航班号:"; cin >> flightNo; vector<FlightInfo> flightList = read引用vcpkg 工具链文件,然后使用 `find_package` 命令来查找 Boost 并链接到FlightInfoFromFile(); for (int i = 0; i < flightList.size(); i++) { if (flightList[i].可执行文件。 如果您的项目依赖多个,您可以在 `find_package` 命令后添加多个的名称。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值