Skip to content

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

636字约2分钟

SkillsCMakeVcpkgVS2022

2024-03-15

我们以采用 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-20240315213847838image-20240315213911989
  7. 并且添加静态库文件的完整文件名称到如下地方:

    image-20240417155950478

    这样与链接器中的常规的附加库目录就构成了完整的 .lib 文件的路径:./lib/cuda_bundle_adjustment.lib

完成!运行!