打包一沓開源的 C/C++ 包管理工具送給你!
- 2019 年 10 月 3 日
- 筆記
本文作者:HelloGitHub-ChungZH
部落格地址:https://chungzh.cn/
包管理器可以幫助你更方便地安裝依賴關係,並決定所安裝的版本,提高你的開發幸福感。許多語言都有自己的包管理器,像 Node.js 的 npm/yarn、Rust 的 Cargo、Python 的 pip 等等。當然,C/C++ 也有它自己的包管理器!下面我們就來感受下這些庫的魅力和特點吧~
1. Conan
- Star 數:3k
- 文檔:https://docs.conan.io/en/latest/
首先出場的是 Conan(注意,不是柯南!),一個用 Python 編寫的 C/C++ 包管理器。它是完全分散的,你可以自己託管伺服器中的包。它適用於所有平台,包括 Linux、OS X、Windows、Solaris、FreeBSD、嵌入式和交叉編譯、docker、WSL。它可以與任何構建系統集成,為 CMake、MSBuild、Makefiles 等工具提供了經過測試的支援。除此之外,它還獲得了Benz、華為等大公司用戶。你還可以在 Conan-Center 尋找或分享你的 C/C++ 包。
想要安裝 Conan 也很簡單:
$ pip install conan
2. Buckaroo
- Star 數:600
- 文檔:https://github.com/LoopPerfect/buckaroo/wiki
這個 C++ 包管理器是使用 F# 語言開發的。它的獨特之處就是直接從 GitHub、BitBucket、GitLab、託管的 Git 和 HTTP 中提取依賴項。同樣的,它也是完全分散的,沒有中央伺服器。Buckaroo 使用 TOML 配置文件。
安裝方法詳見 Quick Install。
它的工作流大概是這樣的:
# Create your project file $ buckaroo init # Install dependencies $ buckaroo add github.com/buckaroo-pm/boost-thread@branch=master # Run your code $ buck run :my-app
3. vcpkg
- GitHub 項目地址:
- Star 數:6k
- 文檔:https://vcpkg.readthedocs.io/
vcpkg 是由微軟爸爸開發的支援 Windows、Linux、Mac OS 的 C++ 庫管理器,解決了 Windows 下常用依賴包的管理問題!它方便與 Visual Studio 集成,你可以使用 vcpkg search
搜索可用的包。它也可以從 Bitbucket、GitHub、GitLab 等獲取包。
安裝方法詳見 Quick Start。
4. clib
- Star 數:3k
- 文檔:https://github.com/clibs/clib/wiki
clib 是一個 C 包管理器(非 C++),使用起來較簡單。同樣的,它也可以直接從 GitHub 上安裝庫。類似於 Node.js,它也是用 package.json
管理的。下面是一個例子:
{ "name": "term", "version": "0.0.1", "repo": "clibs/term", "description": "Terminal ansi escape goodies", "keywords": ["terminal", "term", "tty", "ansi", "escape", "colors", "console"], "license": "MIT", "src": ["src/term.c", "src/term.h"] }
5. poac
- Star 數:341
- 文檔:https://doc.poac.pm/en/
別看 poac 現在 stars 數量少,它其實很適合新手使用。它具有直觀且易於使用的介面(像 npm 和 Cargo 一樣)。獨特的是,你可以在不了解 CMake 的情況下使用 poac 開發應用程式和庫,專註於學習 C++ 而不會絆倒。作者還計劃實現與其他構建系統和包管理器的集成,讓你能夠無縫切換。
安裝也是一行命令搞定:
curl -fsSL https://sh.poac.pm | bash
以上就是本期全部內容,有了這些庫是不是讓安裝 C/C++ 庫變得易如反掌了呢?看完還不過癮那就關注我們的公眾號看看往期的內容吧~
歡迎關注 HelloGitHub 公眾號,獲取更多開源項目的資料和內容
『精選開源項目系列』——跟著我們的文章,你會發現有趣的開源項目,從而愛上開源、愛上編程。加入我們、聯繫我們。讓我們一起讓更多人愛上開源、貢獻開源~