CMake+vcpkg+VS2022配置github上的cmake开源项目外部库

我们以采用 GitHub 上的开源库 cuda-bundle-adjustment 为例,其不能直接用vcpkg进行安装,只能通过cmake编译后链接到VS2022。

将 cuda-bundle-adjustment 库通过 CMake 编译链接到 Visual Studio 2022 步骤操作:

  1. 克隆存储库:使用 git 命令克隆 cuda-bundle-adjustment

    git clone https://github.com/fixstars/cuda-bundle-adjustment.git
    
  2. 创建构建目录:在克隆的 cuda-bundle-adjustment 目录内创建一个名为“build”的文件夹,这将用作构建目录,以保持源代码目录的干净和分离

  3. 配置CMake:使用CMake GUI 进行操作

    注意:我们的 Eigen3、 OpenCV 和 cuda 的一些前置条件库都是使用的 vcpkg 安装的,所以我们需要将 vcpkg 链接到这里:

    在 cuda-bundle-adjustment 目录下的 CMakeLists.txt 中的第一行添加:

    set(CMAKE_TOOLCHAIN_FILE "[你的vcpkg路径]/vcpkg/scripts/buildsystems/vcpkg.cmake"
      CACHE STRING "Vcpkg toolchain file")
    
    • 选好源码地址和 build 地址
    • 再配置好红色部分的属性(一些设置,具体可见项目的README)
    • 点击下方 Configure 编译
    • 再点击 Generate 生成 build
    image-20240315174348844

    这会生成一个 Visual Studio 2022 项目,并将其输出到 build 目录中

  4. 构建项目:在 Visual Studio 中,选择要构建的项目配置(例如Debug或Release),然后右击 ALL_BUILD,选择“生成”,即可在对应 Release 文件夹中得到 cuda_bundle_adjustment.lib

  5. 加入VS项目:前面得到的是静态库 .lib 文件,接下来将 .lib 文件放入VS项目文件夹的lib文件夹(自己建一个)中,并且将 cuda-bundle-adjustment 目录下中的 include 文件夹复制到VS项目文件夹中

  6. 配置VS项目:在项目的属性进行如下设置,添加 .\include.\lib 到下面的三个地方

    特别提醒:注意属性上方的“配置”和“平台”要和运行项目时的一致

    image-20240315213847838

    image-20240315213911989

  7. 并且添加静态库文件的完整文件名称到如下地方:
    在这里插入图片描述这样与链接器中的常规的附加库目录就构成了完整的 .lib 文件的路径:./lib/cuda_bundle_adjustment.lib

完成!运行!

  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CMake是一个跨平台的构建系统,它可以帮助你简化在不同操作系统和编译器上配置和构建项目的过程。vcpkg是一个开源的C++包管理工具,用于简化C++的获取、构建和管理。 要在CMake中使用vcpkg安装Boost(一个流行的C++集合),你可以按照以下步骤操作: 1. **安装vcpkg**: 如果你还没有安装vcpkg,首先需要从其官方GitHub下载并安装它。在命令行中运行: ``` git clone https://github.com/microsoft/vcpkg.git cd vcpkg ./vcpkg install ``` 2. **配置CMake找到vcpkg**: 在你的项目根目录下,添加一个`CMakeLists.txt`文件。在其中添加以下内容,告诉CMake去哪里寻找vcpkg安装的: ```cmake set(VCPKG_ROOT ${CMAKE_SOURCE_DIR}/vcpkg) # 修改为你的vcpkg实际路径 include(vcpkg.cmake) vcpkg_add_defaults(yes) find_package(Boost REQUIRED COMPONENTS <list_of_boost_components>) # 替换<list_of_boost_components>为你需要的Boost组件,如filesystem, thread等 ``` 请确保将`<list_of_boost_components>`替换为你项目所需的Boost组件。 3. **生成构建文件**: 在`CMakeLists.txt`目录下运行CMake生成构建脚本: ``` cmake . ``` 4. **构建项目**: 使用生成的构建脚本来编译你的项目: ``` cmake --build . --config Release # 或者Debug,根据你的需求 ``` 5. **链接Boost**: 在你的源代码中,现在你可以像使用其他标准一样使用`Boost::<component_name>`了。 相关问题: 1. vcpkg除了安装Boost,还能管理哪些其他C++? 2. 如何查看安装的vcpkg列表? 3. 当我的项目依赖多个版本的同一个时,vcpkg如何处理?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值