vcpkg - 方便的 C/C++ 库管理器
最近在做一个大型的 C++ 项目 ── Albumist。它使用 Qt,需要用到很多类似 sqlite3
、exiv2
、libcurl
之类的库。第三方库管理似乎成了问题。
支持 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
。
清单大概长这样:
1 | { |
很方便,也很快捷。
不足
比起这样一个纯粹的管理器,我更希望获得类似 Java 的 Gradle 的体验。如果 CMake 能加入类似功能,体验一定能够翻倍,快捷方便且无需第三方软件。
后记
—- 2020 08 15 更新
又停止使用这个东西了,Windows 上面需要 MSVC。。。