1. 程式人生 > >打包一沓開源的 C/C++ 包管理工具送給你!

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

本文作者: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 等工具提供了經過測試的支援。除此之外,它還獲得了賓士、華為等大公司使用者。你還可以在 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 公眾號,獲取更多開源專案的資料和內容

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