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。。。