windows 上 cmake 添加 vcpkg 选项

发布时间 2023-11-30 17:44:47作者: strive-sun

使用 cmake 编写相关的工程时,工程有时会使用 vcpkg 添加的第三方库,比如 zip 库

查看一些案例后,我发现有些回答不太准确,遂记录下

现在,我们需要在工程中使用 zip_open 函数执行压缩命令,这个函数是 zip.h 里的,所以我们先要添加 zip 库

打开 cmd,输入 vcpkg install libzip:x86-windows-static

 

如果提示找不到 vcpkg 的,可以导航到【编辑系统环境变量】,【环境变量】->【系统变量】-> [PATH],添加 vcpkg.exe 路径

 

 

 

安装完 linzip 后,注意命令行窗口输出的提示,这个很重要

接着在 CMakeLists.txt 中添加 libizp

project(my_project)

find_package(libzip CONFIG REQUIRED)

...

add_executable(my_project ${SOURCES} ${HEADERS} ${RESOURCE_FILES})

target_link_libraries(my_project PRIVATE libzip::zip)

  

上面注明了先后顺序,比如 find_package 必须在 project 的后面设置,target_link_libraries 在 add_executable 后面设置

然后,在 x86 Native Tools Command Prompt for VS 2019 窗口导航到你的项目目录,如果你需要 x64,选择 x64 Native Tools 即可

 

为什么不直接使用 cmd 窗口输入呢?因为 cmd 窗口没有集成 msbuild 一些编译环境

最后,输入下面的 cmake 命令即可

cmake ..  -DCMAKE_TOOLCHAIN_FILE=C:\Users\xxx\vcpkg\scripts\buildsystems\vcpkg.cmake  -DVCPKG_TARGET_TRIPLET=x86-windows-static

msbuild my_project.sln /p:Configuration=Release

  

小结:新手常常误认为直接添加 zip 库就行

比如说这样,

find_package(zip)

这样在 cmake 时,会提示找不到 zip.config,包括一些搜索结果建议你在 target_link_directories 里添加 zip_INCLUDE_DIRS 之类的头文件路径,也是不准确的

就如我上面所说,只添加两行就行,其余交给 cmake 时指定的 tool chain