综述
vcpkg 是用于 C++ 的一种命令行包管理器。 它极大地简化了 Windows、Linux 和 MacOS 上第三方库的购置与安装。 如果项目要使用第三方库,建议通过 vcpkg 来安装它们。 vcpkg 同时支持开源和专有库。 已测试 vcpkg Windows 目录中所有库与 Visual Studio 2015、Visual Studio 2017 及 Visual Studio 2019 的兼容性。 在 Windows 和 Linux/MacOS 目录之间,vcpkg 现已支持超过 1900 个库。 C++ 社区正在不断向两个目录添加更多的库。
vcpkg:用于 Windows、Linux 和 MacOS 的 C++ 包管理器
详细内容
安装
从 GitHub 克隆 vcpkg 存储库:https://github.com/Microsoft/vcpkg。 可凭喜好下载到任意文件夹位置。
在根文件夹中运行 bootstrapper:
bootstrap-vcpkg.bat (Windows)
./bootstrap-vcpkg.sh (Linux、MacOS)
搜索可用库列表
要查看哪些包可用,请在命令提示符中键入:vcpkg search
此命令枚举 vcpkg/ports 子文件夹中的控件文件。 将出现如下的文件列表:
ace 6.4.3 The ADAPTIVE Communication Environment
anax 2.1.0-1 An open source C++ entity system. \<https://github...
antlr4 4.6-1 ANother Tool for Language Recognition
apr 1.5.2 The Apache Portable Runtime (APR) is a C library ...
asio 1.10.8 Asio is a cross-platform C++ library for network ...
assimp 3.3.1 The Open Asset import library
atk 2.24.0 GNOME Accessibility Toolkit
...
可以根据模式筛选,例如 vcpkg search ta:
botan 2.0.1 A cryptography library written in C++11
portaudio 19.0.6.00 PortAudio Portable Cross-platform Audio I/O API P...
taglib 1.11.1-2 TagLib Audio Meta-Data Library
在本地计算机上安装库
在使用 vcpkg search 获取库的名称后,可使用 vcpkg install 下载库并对其进行编译 。 vcpkg 在端口目录中使用库的端口文件。 如果未指定三元组,则 vcpkg 将针对目标平台的默认三元组进行安装和编译:x86-windows、x64-linux.cmake 或 x64-osx.cmake。
对于 Linux 库,vcpkg 取决于本地计算机上安装的 GCC。 在 MacOS 上,vcpkg 使用 Clang。
当端口文件指定了依赖项时,vcpkg 也会下载并安装这些依赖项。 下载后,vcpkg 将使用库所使用的同一生成系统生成库。 CMake 和 MSBuild(Windows 上)项目是首选,但同时还支持 MAKE 以及其他任何生成系统。 如果 vcpkg 在本地计算机上找不到指定的生成系统,它会下载并安装一个。
> vcpkg install boost:x86-windows
The following packages will be built and installed:
boost:x86-windows
* bzip2:x86-windows
* zlib:x86-windows
Additional packages (*) will be installed to complete this operation.
对于 CMAKE 项目,通过 CMAKE_TOOLCHAIN_FILE 来配合使用库和 find_package()。 例如:
cmake .. -DCMAKE_TOOLCHAIN_FILE=vcpkg/scripts/buildsystems/vcpkg.cmake (Linux/MacOS)
cmake .. -DCMAKE_TOOLCHAIN_FILE=vcpkg\scripts\buildsystems\vcpkg.cmake (Windows)
列出已安装的库
在安装了某些库后,你可以使用 vcpkg list 来查看所获得的内容 :
> vcpkg list
boost:x86-windows 1.64-3 Peer-reviewed portable C++ source libraries
bzip2:x86-windows 1.0.6-1 High-quality data compressor.
cpprestsdk:x86-windows 2.9.0-2 C++11 JSON, REST, and OAuth library The C++ REST ...
openssl:x86-windows 1.0.2k-2 OpenSSL is an open source project that provides a...
websocketpp:x86-windows 0.7.0 Library that implements RFC6455 The WebSocket Pro...
zlib:x86-windows 1.2.11 A compression library
Comments | NOTHING