vcpkg-微软开发的VC++打包工具
vcpkg-VC++打包工具
1. 介绍
VCPKG,是VC++ Packaging Tool。 是微软 C++ 团队开发的在 Windows 上运行的 C/C++ 项目包管理工具,可以帮助您在 Windows 平台上获取 C 和 C++ 库.通过它能够方便的安装常用的 C/C++ 库,而且提供了 CMake 的集成。这使得使用 CMake 的项目在 Windows 下构建方便了很多,不需要自己手动去指定在 Windows 下如何找到依赖的库了。
vcpkg 自身也是使用 C++ 开发的 (而其他的 C++ 包管理大多并不是 C++ 开发的),并且 vcpkg 能够帮助用户在 Visual Studio 中,更好的使用这些安装好的库.
不过实际使用中还是碰到一些问题。为了减少依赖,直接复制一个可执行程序就能在其它机器上运行,经常会需要静态链接依赖的库。而在 Windows 上使用 vcpkg 静态链接需要一些特殊的操作。
vcpkg 整合了 git,构建系统整合的 CMake,而绝大多数的 C++ 项目都可以直接或者间接的方式使用 CMake创建原生项目文件并构建.
vcpkg遵循一下原则:
开放源码
无需安装
支持重发构建
自定义生成
社区参与贡献
端口集成(与 BSD Ports 机制类似)
vcpkg是命令行包管理工具,在使用第三方库的c或c++开发中可以简化相关的配置操作
vcpkg安装的包支持vs2015和vs2017工具集,目前在windows平台已有超过900多个包,linux平台超过350个包。在默认情况下,vcpkg会优先使用vs2017进行编译。如果未安装,则使用vs2015编译和安装。使用vcpkg对于c或c++开发,令人烦恼的第三方包管理工作大大的减轻,实则是“居家旅行,必备之品”。
vcpkg支持众多架构:
arm-uwp, arm-windows, arm64-uwp, arm64-windows,
x64-linux, x64-osx, x64-uwp, x64-windows, x64-windows-static,
x86-uwp, x86-windows, x86-windows-static。
2. vcpkg的常用操作:
# 下载vcpkg项目
git clone https://github.com/Microsoft/vcpkg # 本地编译
bootstrap-vcpkg.bat # 搜索想要安装的包
vcpkg search curl # 安装指定的包,curl包分号后面的表示架构,可用的值为之前列出的那些。
vcpkg install curl:x64-windows # 列出已经安装的包
vcpkg list # 已安装的包更新
vcpkg upgrade # 删除已安装的包
vcpkg remove curl:x64-windows
3. 简单使用
依赖要求:
使用vcpkg, 要提前保证系统各种有以下:
- Windows 10, 8.1, 7, Linux, or MacOS
- Visual Studio 2017 or Visual Studio 2015 Update 3 (on Windows)
- Git
- Optional: CMake 3.10.2
(1)将git.exe 路径防止在系统的path变量中。
(2)克隆vcpkg仓库
git clone https://github.com/Microsoft/vcpkg.git
然后运行:
C:\src\>cd vcpkg
C:\src\vcpkg>.\bootstrap-vcpkg.bat
(3)切换到源代码路径,执行构造
powershell -exec bypass scripts\bootstrap.ps1
(4)设定user-wide整合(初次执行需要管理员权限)
然后,运行如下命令使计算机的所有用户都可以使用vcpkg (备注:需要管理员权限)
vcpkg.exe integrate install
或者如下执行:
PS D:\vcpkg> .\vcpkg integrate install
Applied user-wide integration for this vcpkg root. All MSBuild C++ projects can now #include any installed libraries.
Linking will be handled automatically.
Installing new libraries will make them instantly available. CMake projects should use: "-DCMAKE_TOOLCHAIN_FILE=D:/vcpkg/scripts/buildsystems/vcpkg.cmake"
(5)安装库
使用vcpkg安装任何的程序包: C:\src\vcpkg> .\vcpkginstall sdl2 curl
vcpkg.exe install sqlite3 boost
(6)最后,后,在Visual Studio 2015 or Visual Studio 2017中新建工程,只需要 #include 对应的头文件即可使用。
特点:
(1)免配置
无需配置include、library路径,无需配置library依赖,自动识别win32/x64(2)自动复制依赖
如果依赖于某个library,则运行/打包时需要复制dll到对应路径,而Vcpkg会自动完成这一步骤
3. 简单实例,如何安装sqlite步骤
(1)查询sqlit的名称
vcpkg.exe search sqlite
libodb-sqlite 2.4. Sqlite support for the ODB ORM library
sqlite3 3.15. SQLite is a software library that implements a se... If your library is not listed, please open an issue at:
https://github.com/Microsoft/vcpkg/issues
(2)安装sqlite3
vcpkg.exe install sqlite3
(3)确认是否安装成功
vcpkg.exe list
4. 指定特定版本的SQlit库
安装64位版本
vcpkg.exe install sqlite3:x64-windows
6. 使用 sqlit
(1) 打开Visual Studio 2015 新建工程,main.cpp如下
#include <sqlite3.h>
#include <stdio.h> int main(int argc,char** argv)
{
printf("%s\n",sqlite3_libversion()):
return ;
}
(2)编译运行
是否支持Visual Studio 2010 ?
否,后续我会介绍Vcpkg用到的“知识点”,可以为Visual Studio 2010开发相应工具提供借鉴。是否支持静态编译库
是,例如vcpkg.exe install xxx:x86-windows-static没有我需要的库怎么办
自己写
endl;
vcpkg-微软开发的VC++打包工具的更多相关文章
- vcpkg —— VC++ 打包工具
引用: http://www.tuicool.com/articles/aeiYz2v vcpkg 是微软 C++ 团队开发的在 Windows 上运行的 C/C++ 项目包管理工具,可以帮助您在 W ...
- win10 + vs2017 + vcpkg —— VC++ 打包工具
vcpkg 是微软 C++ 团队开发的在 Windows 上运行的 C/C++ 项目包管理工具,可以帮助您在 Windows 平台上获取 C 和 C++ 库. vcpkg 自身也是使用 C++ 开发的 ...
- 原创全新打包工具Parcel零配置VueJS开发脚手架
parcel-vue 一个基于Parcel打包工具的 VueJS急速开发脚手架解决方案,强烈建议使用node8.0以上 项目地址: https://github.com/w3c-king/p... 初 ...
- 微软自带打包工具 InstallShield 的使用
1.下载并安装 InstallShield InstallShield Limited Edition for Visual Studio 2013 图文教程(教你如何打包.NET程序) Ins ...
- 使用clion+cmake+vcpkg的开发现代的c++跨平台程序
使用clion+cmake+vcpkg的开发现代的c++跨平台程序 使用c++开发跨平台的程序 背景 在开发过程中,使用c++作为开发语言,通常被认为是痛苦的,啰嗦的,超长开发时间的.最近几年有各种各 ...
- 细说前端自动化打包工具--webpack
背景 记得2004年的时候,互联网开发就是做网页,那时也没有前端和后端的区分,有时一个网站就是一些纯静态的html,通过链接组织在一起.用过Dreamweaver的都知道,做网页就像用word编辑文档 ...
- Webpack:前端资源模块化管理和打包工具
一.介绍: Webpack 是当下最热门的前端资源模块化管理和打包工具.它可以将许多松散的模块按照依赖和规则打包成符合生 产环境部署的前端资源.还可以将按需加载的模块进行代码分隔,等到实际需要的时候再 ...
- Xamarin Mono For Android 4.6.07004 完整离线安装破解版(C#开发Android、IOS工具)
Xamarin是由Miguel de Icaza成立的一家新的独立公司,目的是给Mono一个继续奋斗的机会.Mono for Android (原名:MonoDroid)可以让开发人员使用 Mic ...
- 【Cocos2d-Js基础教学(5)资源打包工具的使用及资源的异步加载处理】
TexturePacker是纹理资源打包工具,支持Cocos2dx的游戏资源打包. 如果用过的同学可以直接看下面的资源的异步加载处理 首先为什么用TexturePacker? 1,节省图片资源实际大小 ...
随机推荐
- PAT 1024 科学计数法 (20)(精简版代码+思路+推荐测试样例)
1024 科学计数法 (20)(20 分) 科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式[+-][1-9]"."[0-9]+E[+-][0-9]+, ...
- Loadrunner使用键盘快捷键
---------Loadrunner使用键盘快捷键------------ alt+f8 比较当前快照(仅限于 Web Vuser) alt+ins 新建步骤 ctrl+a 全选 ctrl+c 复制 ...
- linux内核中hlist_head和hlist_node结构解析
hlist_head和hlist_node用于散列表,分表表示列表头(数组中的一项)和列表头所在双向链表中的某项,两者结构如下: 1 2 3 struct hlist_head { struct hl ...
- linux 使用笔记6
---恢复内容开始--- 1.内容追加 把一个文件的内容追加到另一个文件中: cat first.txt >> second.txt//追加到second.txt文件的末端 cat ...
- holiday(假期)_题解
holiday(假期) —— 一道妙题(codevs3622) Description 经过几个月辛勤的工作,FJ 决定让奶牛放假.假期可以在1…N 天内任意选择一段(需要连续),每一天都有一个享 ...
- zabbix监控系统_监控收集脚本使用分享
性能测试总是要监控服务器,做了zabbix监控之后,重要收集监控数据,这里分享下我是怎么做的. 准备文件 python2.7 pypa-setuptools.tar.gz -p -path /h ...
- Eclipse的下载及安装
Eclipse的下载地址: https://www.eclipse.org/downloads/ 下载完成后,双击安装包即可安装 选择 Eclipse IDE for Java EE Decelope ...
- Maximum Size Subarray Sum Equals k LT325
Given an array nums and a target value k, find the maximum length of a subarray that sums to k. If t ...
- Activiti 5.18启动流程到完成所有任务之间的数据库变化(转)
来写一下Activiti 5.18版本从启动流程到整个流程结束之间数据库表的变化 先给出流程图,很简单的流程,就是两个UserTask: 代码如下: DeploymentBuilder builder ...
- Go环境下,编译运行etcd与goreman集群管理(1)
Go环境下编译运行etcd与goreman管理 近几年了Go在比特币.区块链.云服务等相关重要领域贡献突出,作为IT行业的传承“活到老.学到光头”,保持学习心态. 周末放假,补充一二 主题:在Go环境 ...