windows 上 cmake 添加 vcpkg 选项
使用 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
如果提示找不到 msbuild,那就先指定绝对路径测试一下吧
# powershell 下输入
& 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\msbuild.exe' my_project.sln /p:Configuration=Release
小结:新手常常误认为直接添加 zip 库就行
比如说这样,
find_package(zip)
这样在 cmake 时,会提示找不到 zip.config,包括一些搜索结果建议你在 target_link_directories 里添加 zip_INCLUDE_DIRS 之类的头文件路径,也是不准确的
就如我上面所说,只添加两行就行,其余交给 cmake 时指定的 tool chain
windows 上 cmake 添加 vcpkg 选项的更多相关文章
- windows上redis添加密码
命令: config get requirepass config set requirepass pwd redis-server.exe redis-windows.conf. auth pw ...
- windows上memecache添加多个端口命令
sc create "Memcached Server1" start= auto binPath= "D:\01_Soft\memcached\memcached.ex ...
- (转)Windows上使用CMake
CMake简介 原文:http://blog.gclxry.com/use-cmake-on-windows/ 你或许听过好几种 Make 工具,例如 GNU Make ,QT 的 qmake ,微软 ...
- 【KAWAKO】在windows上用CMake和MinGW编译c++工程
目录 安装CMake 安装MinGW 编写CMakeLists.txt 编译一条龙 安装CMake 在网上随便找个教程照着安装就行了,不再赘述. 安装MinGW 参考这篇博客.从MinGW官网下载的安 ...
- windows上用vs2017静态编译onnxruntime-gpu CUDA cuDNN TensorRT的坎坷之路
因为工作业务需求的关系,需编译onnxruntime引入项目中使用,主项目exe是使用的vs2017+qt5.12. onnxruntime就不用介绍是啥了撒,在优化和加速AI机器学习推理和训练这块赫 ...
- 深入体验bash on windows,在windows上搭建原生的linux开发环境,酷!
今年微软Build 2016大会最让开发人员兴奋的消息之一,就是在Windows上可以原生运行Linux bash,对开发人员来说,这是一个喜闻乐见的消息. 1 安装 你必须安装开发者预览版本,才能使 ...
- 在Windows上安装MySQL(免安装ZIP版)
在 Windows 上安装MySQL(免安装ZIP版) 因为一些原因,重新安装了MySQL数据库,重装时习惯性使用最新版下载 此过程中发现MySQL 5.7.12 和MySQL 5.6的安装有些区别: ...
- 在Windows上使用Let加密IIS
在Windows上使用Let加密IIS https://weblog.west-wind.com/posts/2016/Feb/22/Using-Lets-Encrypt-with-IIS-on-Wi ...
- 批处理启动vm虚拟机服务 vm12启动无界面启动vm虚拟机系统 windows上如何操作服务 sc net启动关闭服务
windows(win10)批处理脚本 打开vm虚拟机的服务,并且开启无界面虚拟机 @echo off net start "vds" net start "VMAuth ...
- 在windows上安装VTK
看了很多教程,花了1天半的时间装上了,记录下. 前置条件:我安装了VS2015,用来编译工程. 参考资料 官方:http://www.vtk.org/Wiki/VTK/Building 安装:http ...
随机推荐
- [转帖]k8s(1.28.2)部署ingress-nginx-controller(1.9.0)
1.部署ingress-nginx-controller 继在三台虚拟机部署k8s后,需要部署ingress-nginx-controller,才能使设置的ingress规则生效. 1.1下载yaml ...
- [转帖]CENTOS6.5 没有/LIB64/LIBFUSE.SO.2的问题
yum install fuse-libs
- [转帖]探索惊群 ④ - nginx - accept_mutex
https://wenfh2020.com/2021/10/10/nginx-thundering-herd-accept-mutex/ 由主进程创建的 listen socket,要被 fork ...
- [转帖]3.3.6. 活跃会话历史报告SYS_KSH
https://help.kingbase.com.cn/v8/perfor/performance-optimization/performance-optimization-6.html#sys- ...
- [转帖]【mmap】深度分析mmap:是什么 为什么 怎么用 性能总结
https://blog.csdn.net/bandaoyu/article/details/106750990 目录 有什么用? 1.文件映射 2.分配内存(匿名文件映射) mmap基础概念 mma ...
- [转帖]使用 sed 处理文本文件
https://www.cnblogs.com/wx2020/p/16269905.html 前言 sed 是一款 GNU 流编辑器,可以按照指定的规则去处理文本文件或流,其强大的功能使用户在命令中快 ...
- [转帖]第七篇:双管齐下,JVM内部优化与JVM性能调优
文章目录 一.前言 二.编译时优化 2.1 Javac编译器 2.2 Java语法糖 2.2.1 泛型和泛型擦除 2.2.2 自动装箱.自动拆箱.遍历循环 2.2.3 条件编译 三.运行时优化(核心: ...
- [转帖]linux时间戳转换成时间指令_时间戳转换公式
原文地址:http://wanping.blogbus.com/logs/28663569.html 1.时间戳转换为正常显示的时间格式 Freebsd 系统下: 转换命令为: date -r 111 ...
- Nginx 系列 | (转)Nginx 上传文件:client_max_body_size 、client_body_buffer_size
原文:http://php-note.com/article/detail/488 client_max_body_size client_max_body_size 默认 1M,表示 客户端请求服务 ...
- KubeSphere2.1踩坑记
至少两台机器.推荐4X16.(完全安装KubeSphere会吃掉10G+内存) k8s安装(略1.14.8)可参考我上一篇文章或者基于kubeadmin快速安装 KubeSphere2.1前置条件 1 ...