1

vcpkg - 方便的 C/C++ 库管理器

 3 years ago
source link: https://aeilot.github.io/2020/08/13/vcpkg/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

vcpkg - 方便的 C/C++ 库管理器

发表于

2020-08-13 更新于 2021-01-24 分类于 编程

阅读次数: 7 Valine:
本文字数: 872 阅读时长 ≈ 1 分钟

最近在做一个大型的 C++ 项目 ── Albumist。它使用 Qt,需要用到很多类似 sqlite3exiv2libcurl 之类的库。第三方库管理似乎成了问题。

支持 git 的都可以使用 git submodule 来管理,但是还有少部分是不支持的,或者是二进制的,比如 sqlite3。这就要我们手动去下载,手动去更新,好生麻烦。

vcpkg

我一直想要一个类似 npm pip 一样的东西,把依赖写在文件里面,然后直接 install 即可。

经过搜索,我发现了微软的一个项目 vcpkg。官方定义它为 “C++ Library Manager for Windows, Linux, and MacOS”,简单翻译一下就是 “支持 Windows, Linux 和 macOS 的 C++ 库管理器”。

在 Arch Linux 上面,安装它并不复杂,只需要:sudo pacman -S vcpkg-git 即可。其他系统没有尝试过,跟着它的 README 也很方便安装。

“清单” 功能

在项目根目录创建一个 vcpkg.json, 然后 vcpkg install。这一功能就是 “清单” 功能。它正好是我想要的,可是却暂时处在 Beta 阶段,不过也无关紧要。

要启用 “清单” 功能,在执行命令时,需要接参数 --feature-flags = manifests

清单大概长这样:

{
"name": "<name of your project>",
"version-string": "<version of your project>",
"dependencies": [
"abseil",
"boost"
]
}

很方便,也很快捷。

比起这样一个纯粹的管理器,我更希望获得类似 Java 的 Gradle 的体验。如果 CMake 能加入类似功能,体验一定能够翻倍,快捷方便且无需第三方软件。

—- 2020 08 15 更新

又停止使用这个东西了,Windows 上面需要 MSVC。。。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK