打包一沓開源的 C/C++ 包管理工具送給你!

HelloGitHub發表於2019-08-26

本文作者 ChungZH

部落格地址:chungzh.cn/

包管理器可以幫助你更方便地安裝依賴關係,並決定所安裝的版本,提高你的開發幸福感。許多語言都有自己的包管理器,像 Node.js 的 npm/yarn、Rust 的 Cargo、Python 的 pip 等等。當然,C/C++ 也有它自己的包管理器!下面我們就來感受下這些庫的魅力和特點吧~

1. Conan

首先出場的是 Conan(注意,不是柯南!),一個用 Python 編寫的 C/C++ 包管理器。它是完全分散的,你可以自己託管伺服器中的包。它適用於所有平臺,包括 Linux、OS X、Windows、Solaris、FreeBSD、嵌入式和交叉編譯、docker、WSL。它可以與任何構建系統整合,為 CMake、MSBuild、Makefiles 等工具提供了經過測試的支援。除此之外,它還獲得了賓士、華為等大公司使用者。你還可以在 Conan-Center 尋找或分享你的 C/C++ 包。

想要安裝 Conan 也很簡單:

$ pip install conan
複製程式碼

打包一沓開源的 C/C++ 包管理工具送給你!

2. Buckaroo

這個 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
複製程式碼

打包一沓開源的 C/C++ 包管理工具送給你!

3. vcpkg

vcpkg 是由微軟爸爸開發的支援 Windows、Linux、Mac OS 的 C++ 庫管理器,解決了 Windows 下常用依賴包的管理問題!它方便與 Visual Studio 整合,你可以使用 vcpkg search 搜尋可用的包。它也可以從 Bitbucket、GitHub、GitLab 等獲取包。

安裝方法詳見 Quick Start

4. clib

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"]
}
複製程式碼

打包一沓開源的 C/C++ 包管理工具送給你!

5. poac

別看 poac 現在 stars 數量少,它其實很適合新手使用。它具有直觀且易於使用的介面(像 npm 和 Cargo 一樣)。獨特的是,你可以在不瞭解 CMake 的情況下使用 poac 開發應用程式和庫,專注於學習 C++ 而不會絆倒。作者還計劃實現與其他構建系統和包管理器的整合,讓你能夠無縫切換。

安裝也是一行命令搞定:

curl -fsSL https://sh.poac.pm | bash
複製程式碼

打包一沓開源的 C/C++ 包管理工具送給你!


打包一沓開源的 C/C++ 包管理工具送給你!

歡迎關注 HelloGitHub 公眾號,獲取更多開源專案的資料和內容

『講解開源專案系列』 跟著我們的文章,你會發現有趣的開源專案,從而愛上開源、愛上程式設計。加入我們、聯絡我們。讓我們一起讓更多人愛上開源、貢獻開源~

相關文章