Vcpkg使用指南

Vcpkg是什么

VC++ Packaging Tool,用来帮助你在Windows上获取C/C++库,目前尚处理预览状态。

快速上手

  1. 前提条件:
  • Visual Studio 2015 Update 3
  • path变量路径下有git.exe
  1. 克隆仓库

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

  1. 切换到源代码路径,执行构造

powershell -exec bypass scripts\bootstrap.ps1

  1. 设定user-wide整合(初次执行需要管理员权限)

vcpkg.exe integrate install

  1. 安装库

vcpkg.exe install sqlite3 boost

  1. 最后,在Visual Studio 2015中新建工程,只需要 #include 对应的头文件即可使用。

特点

  • 免配置
    无需配置include、library路径,无需配置library依赖,自动识别win32/x64

  • 自动复制依赖
    如果依赖于某个library,则运行/打包时需要复制dll到对应路径,而Vcpkg会完成这一步骤

示例sqlite

安装

查询sqlite对应的名称

λ vcpkg.exe search sqlite
libodb-sqlite        2.4.0            Sqlite support for the ODB ORM library
sqlite3              3.15.0           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

然后安装sqlite3

λ vcpkg.exe install sqlite3
-- CURRENT_INSTALLED_DIR=D:/vcpkg/installed/x86-windows
-- DOWNLOADS=D:/vcpkg/downloads
-- CURRENT_PACKAGES_DIR=D:/vcpkg/packages/sqlite3_x86-windows
-- CURRENT_BUILDTREES_DIR=D:/vcpkg/buildtrees/sqlite3
-- CURRENT_PORT_DIR=D:/vcpkg/ports/sqlite3/.
-- Downloading https://sqlite.org/2016/sqlite-amalgamation-3150000.zip...
-- Downloading https://sqlite.org/2016/sqlite-amalgamation-3150000.zip... OK
-- Testing integrity of downloaded file...
-- Testing integrity of downloaded file... OK
-- Extracting source D:/vcpkg/downloads/sqlite-amalgamation-3150000.zip
-- Extracting done
-- Configuring x86-windows-rel
-- Configuring x86-windows-rel done
-- Configuring x86-windows-dbg
-- Configuring x86-windows-dbg done
-- Build x86-windows-rel
-- Build x86-windows-rel done
-- Build x86-windows-dbg
-- Build x86-windows-dbg done
-- Package x86-windows-rel
-- Package x86-windows-rel done
-- Package x86-windows-dbg
-- Package x86-windows-dbg done
-- Warning: Could not find a matching pdb file for:
    D:/vcpkg/packages/sqlite3_x86-windows/bin/sqlite3.dll
    D:/vcpkg/packages/sqlite3_x86-windows/debug/bin/sqlite3.dll

-- Performing post-build validation
-- Performing post-build validation done
Package sqlite3:x86-windows is installed

确认是否安装成功

vcpkg.exe list

安装64位版本

vcpkg.exe install sqlite3:x64-windows

使用

打开Visual Studio 2015 新建工程,main.cpp如下

#include <sqlite3.h>
#include <stdio.h>

int main(int argc,char** argv)
{
    printf("%s\n",sqlite3_libversion()):
    return 0;
}

编译运行

FAQ

  • 是否支持Visual Studio 2010 ?
    否,后续我会介绍Vcpkg用到的“知识点”,可以为Visual Studio 2010开发相应工具提供借鉴。

  • 是否支持静态编译库
    是,例如vcpkg.exe install xxx:x86-windows-static

  • 没有我需要的库怎么办
    自己写,后续我会介绍如何向Vcpkg新增库

点赞