首页 > 系统相关 >windows 上 cmake 添加 vcpkg 选项

windows 上 cmake 添加 vcpkg 选项

时间:2023-11-30 17:44:08浏览次数:35  
标签:cmake zip windows project 添加 vcpkg my

使用 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 

  

 

标签:cmake,zip,windows,project,添加,vcpkg,my
From: https://www.cnblogs.com/strive-sun/p/17867908.html

相关文章

  • windows提权1
    本次学习利用Windows环境变量配置错误进行提权实验原理系统在执行用户命令时,若用户未给出绝对路径,则首先在当前目录下寻找相应的可执行文件、批处理文件等。若找不到,再依次在PATH保存的这些路径中寻找相应的可执行程序文件(windows环境变量的查找顺序是按照文件的录入顺序从前往......
  • Windows平台的prometheus和Grafana的学习与使用
    Windows平台的prometheus和Grafana的学习与使用背景最近没有了linux机器突然想捯饬一下Windows平台的监控与使用所以总结一一下.第一步下载https://prometheus.io/download/https://grafana.com/grafana/download注意需要下载windows平台的安装介质建议是选择zip包.zip包......
  • 2023年11月更新整理Windows11专业版激活密钥
    微软Windows11官方ISO镜像下载地址:https://www.microsoft.com/zh-cn/software-download/windows11整理自互联网,不保证可用性。A2B7C-Q8D4E-F1G6H-I7J3K-L5M9NP9Q2R-E4S6T-U1V8W-O3X7Y-K5Z9JU6S2F-V4C6B-K1X8Z-M7N3K-G9H5JL8K2J-C3V6B-G1X9Z-Y7I4P-O5Q9RF9D2H-V3C6B-K1X8Z-M7N4K-U......
  • HPM5301EVKlite windows下上手使用
    HPM5301是先辑半导体出的一款300Mhz的riscV芯片,售价7.99,开发板售价39.99,性价比超高资源获取evklite基本不需要原理图,下载SDK和ENV即可SDK连接:https://github.com/hpmicro/hpm_sdkENV连接:https://github.com/hpmicro/sdk_env占坑待续。。。......
  • Windows下读文件二进制模式和文本模式的区别
    前段时间,碰到了一个奇怪的事情,我实现了一个读某文件的类,原本这个文件是以二进制写的,读的时候没太在意,将模式少写了一个“b”,变成了文本模式_tfopen_s(&pFile,m_file,_T("r"))测试了好些文件都没有问题,直到有一天,一同事反应读取函数有问题,数据被截断了。我看了半天,百思不得其......
  • 使用Win-ACME在Windows+iis服务器下配置自动续期SSL证书
    使用Win-ACME在Windows+iis服务器下配置自动续期SSL证书 由于网站建设和小程序开发等都需要https,但是ssl证书有过期的限制,如果没有及时续期ssl证书,那么将会影响线上程序正常运行,因此我便找了很多可以在windows服务器下使用的自动续期证书的工具。win-acme,github地址:https:/......
  • Windows XP
    WindowsXPhttps://baike.baidu.com/item/WindowsXP/191927密钥RT4H2-8WYHG-QKK6K-WWHJ2-9427Xxp系统安装产品密钥是什么windows批量许可证产品密钥http://www.caeworld.cn/win7jc/143347.html......
  • windows socket编程
       参考:Windows下Winsock.dll与ws2_32.dll区别:在Windows中,Winsock.dll(WindowsSocketDLL)和ws2_32.dll(Winsock2DLL)是两个不同的DLL(动态链接库),但它们都与网络编程和套接字操作有关。Winsock.dll:LegacyWinsockLibrary:Winsock.dll是Windows原始的套接字库,用......
  • IIS 10的重大更新通常会随着Windows Server和Windows 10的累积更新一起发布,这些更新可
    IIS10是WindowsServer 和Windows10操作系统中内置的Web服务器角色。针对IIS10的重大更新通常会随着WindowsServer和Windows10的累积更新一起发布,这些更新可能包括性能改进、安全性增强、新功能和修复程序。在过去的更新中,IIS10可能会获得以下方面的重大改进:安全性增......
  • 在Windows操作系统上创建和管理服务的工具,它们各自有不同的特点和用途
    在Windows操作系统上创建和管理服务的工具,它们各自有不同的特点和用途。XYNTservice:XYNTservice是一个开源的软件,它可以将任何可执行文件转换为Windows服务。通过XYNTservice,你可以将你的应用程序注册为Windows服务,使其能够在系统启动时自动运行,并以服务的身份在后台运......