vcpkg是Microsoft的跨平台开源软件包管理器,极大地简化了 Windows、Linux 和 macOS 上第三方库的购置与安装。如果项目要使用第三方库,建议通过 vcpkg 来安装它们。vcpkg 同时支持开源和专有库。

Microsoft中对它的具体介绍:

https://docs.microsoft.com/zh-cn/cpp/build/vcpkg?view=vs-2019

1、安装

a. 获取Vcpkg

Vcpkg的官方源码站点为:https://github.com/microsoft/vcpkg

git clone https://github.com/microsoft/vcpkg

b.编译Vcpkg

Windows平台:在cmd中执行Vcpkg工程目录下的“bootstrap-vcpkg.bat”命令,编译好后会在同级目录下生成vcpkg.exe文件。

Linux平台:在命令行中执行在vcpkg工程目录下“sudo bash ./ bootstrap-vcpkg.sh”命令,会生成一个可执行文件vcpkg。定义环境变量 VCPKG_ROOT="/vcpkg"

2、使用Vcpkg管理库(以windows平台为例)

a.查看Vcpkg支持的库

.vcpkg.exe search

b.安装一个库(以eigen3为例)

.vcpkg install eigen3
注:可以用 eigen:x86-windows或eigen:x64-windows指定安装的版本,可以使用的版本还包括
x64-windows-static x64-windows x86-windows-static x86-windows.若不指定默认为32位;
添加环境变量 `VCPKG_DEFAULT_TRIPLET=x64-windows` 可使默认集成位64位

可以使用 ./vcpkg help triplets 查看支持的平台。

c.查看已经安装的开源库

.vcpkg.exe list

d.移除一个已经安装的库

.vcpkg.exe remove egien3

3、集成使用

a. 集成到全局。Vcpkg提供了一套机制,可以全自动的适配目录,而开发者不需要关心已安装的库的目录在哪里,也不需要设置。

.vcpkg integrate install

“Applied user-wide integration for this vcpkg root.”表示集成成功。这时候可以在Visual Studio 任意的工程中使用安装好的第三方库。

若要移除集成

.vcpkg integrate remove

此时与CMake一起使用时,需添加依赖以及在设置路径(具体使用的方法在集成和安装库时会有说明)

需要注意的点:

若在windows平台上使用CLion+Mingw+Vcpkg使用时需要在CMakeLists.txt中添加如下语句:

if(DEFINED ENV{VCPKG_DEFAULT_TRIPLET} AND NOT DEFINED VCPKG_TARGET_TRIPLET)set(VCPKG_TARGET_TRIPLET "$ENV{VCPKG_DEFAULT_TRIPLET}" CACHE STRING "")
endif()

https://stackoverflow.com/questions/57092692/how-to-fix-vcpkg-cmake-is-unable-to-determine-target-architecture-windows10-v

模板如下:

cmake_minimum_required (VERSION 3.15)
SET(CMAKE_TOOLCHAIN_FILE "D:/VS/vcpkg/scripts/buildsystems/vcpkg.cmake")
# 上述语句等价于 cmake -CMAKE_TOOLCHAIN_FILE = D:/VS/vcpkg/scripts/buildsystems/vcpkg.cmakeif(DEFINED ENV{VCPKG_DEFAULT_TRIPLET} AND NOT DEFINED VCPKG_TARGET_TRIPLET)set(VCPKG_TARGET_TRIPLET "$ENV{VCPKG_DEFAULT_TRIPLET}" CACHE STRING "")
endif()# 项目名称
project (LM_Tutorial)
# 寻找添加的库
find_package(Eigen3 CONFIG REQUIRED)
# 为工程引入一个可执行文件
add_executable (LMOptimize main.cpp)
# 添加链接
target_link_libraries(LMOptimize Eigen3::Eigen)

b.仅集成至一个Visual Studio工程中

集成工程需要利用 nuget插件来实现

①首先生成配置

.vcpkg integrate project

执行命令成功后会在“scriptsbuildsystems”目录下,生成nuget配置文件.

②配置Nuget

点击菜单“工具”, 选择"NuGet 包管理器->程序包管理器设置".
添加新的源, 选择vcpkg目录下的“scriptsbuildsystems”目录,然后点击右侧的“更新”按钮。点击“确定”按钮,关闭对话框。

③工程配置

右键点击需要设置的工程弹出菜单,选择“管理 NuGet 程序包”。在右上角的“程序包源”中选择刚刚设置的“vcpkg”。这样在“浏览”选项卡中就可以看到“vcpkg.D.vcpkg”。点击最右侧的“安装”。此时就集成到某个工程了。

参考:

https://www.cnblogs.com/Leo_wl/p/11555600.html

https://www.jianshu.com/p/a1662ad8814d

vcpkg安装_[工具]包管理工具Vcpkg 的使用相关推荐

  1. ubuntu安装python下载包_Ubuntu安装Python的包管理工具Pip

    CSDNGitHubUbuntu安装Python的包管理工具PipAderXCoding/system/tools/pip 本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行 ...

  2. python3.7.2怎么安装和管理扩展包_怎么安装python扩展包管理工具pip

    python get-pip.py 执行完成后,在python的安装目录下的Scripts子目录下,可以看到pip.exe.pip2.7.exe.pip2.exe等,这就表示pip安装成功了. 注意: ...

  3. git管理工具_使用包管理工具

    HomeBrew HomeBrew 是Mac上十分好用的包管理工具. 如果使用过 Linux,那么一定不会对 yum 或者 apt 感到陌生.homebrew 就是 Mac 上的这样的一个包管理工具. ...

  4. 本地k8s环境搭建工具kind、microk8s安装;windows 包管理工具Chocolatey;lens k8s可视化工具

    类似工具还有minik8s Chocolatey windows安装 Chocolatey类似mac的homebrew工具 cmd 终端管理运行 @powershell -NoProfile -Exe ...

  5. windows下安装python的包管理工具pip,scikit-learn

    打开https://pip.pypa.io/en/latest/installing.html#python-os-support 下载pip-get.py 进入python,执行pip-get.py ...

  6. helm3安装mysql_Helm3(kubernetes包管理工具)安装使用踩坑指南

    image.png 从结构中我们看到有不同级别的文件夹,以及一些yaml文件. charts: 用于存放其他依赖和关联的chart.例如应用依赖数据库的chart. Chart.yaml:存储一些元数 ...

  7. Python包管理工具Distribute的安装

    Python包管理工具Distribute的安装 Python的包管理工具常见的有easy_install, setuptools, 还有pip, distribute,那麽这几个工具有什么关系呢,看 ...

  8. 前端工程化-包管理工具npm-yarn-cnpm-pnpm详细介绍以及如何选择

    文章目录 包管理工具详解 npm包管理工具 1.代码共享的方案 2.npm包管理工具介绍 3.npm的配置文件 常见配置文件 常见配置文件属性 版本号的说明 4.npm install npm ins ...

  9. 工程实践:Windows包管理工具——VCPKG

    工程实践:Windows包管理工具--VCPKG 前言 Windows C++开发使用第三方库 使用第三方库存在的问题 vcpkg的优点 如何使用VCPKG 总结 前言 作为推荐大家使用vcpkg来进 ...

最新文章

  1. 1099 Build A Binary Search Tree
  2. Androidz之Activity概要学习
  3. CSS基础(part22)--2D转换
  4. c 编程语言概述,C编程语言概述
  5. 计算机网络(十三)-数据链路层-动态分配信道
  6. @EnableTransactionManagement
  7. java中反射机制通过字节码文件对象获取字段和函数的方法
  8. Centos7 安装pyhton3.7.4
  9. minio 搭建blob
  10. 最优二叉搜索树(动态规划)
  11. 由SELECT ... FROM ... FOR UPDATE想到的
  12. java 查找链表中间元素,如何找到链表的中间节点?
  13. Java中基本类型和引用类型(简单介绍)
  14. CCF - 201604-2 - 俄罗斯方块
  15. 通过css使文字有渐变的效果
  16. 《Java核心技术36讲》读后
  17. android信鸽推送demo_信鸽推送_Kevin Notes - SegmentFault 思否
  18. windows下cmd 查找/关闭端口
  19. 根号3136用计算机,根号1·100的平方根和立方根是多少
  20. 重磅公开!集14位名师教案的《最全高中数学解题思想方法汇编》

热门文章

  1. LINQ – 使用DataLoadOptions 提高LINQ to SQL 查询性能
  2. JS-DOM-节点-获取元素-文档结构-元素的属性
  3. TS Introduction(介绍)
  4. 6-1 稀疏矩阵求和 (70 分)
  5. PTA22、最小乘积(基本型) (10 分)
  6. 数据结构栈之火车出站小结
  7. 使用 Proteus 仿真 STM32
  8. python 一维数组所有元素是否大于_利用Python进行数据分析(5) NumPy基础: ndarray索引和切片...
  9. flume 一对多hdfs_10PB 规模的 HDFS 数据在 eBay 的迁移实战
  10. 光机学院计算机系,计算机系召开第十二届科技节闭幕式