C++沒有好的包管理器?這裡來一沓!C

包管理器可以幫助你更方便地安裝依賴關係,並決定所安裝的版本,提高你的開發幸福感。許多語言都有自己的包管理器,像 Node.js 的 npm/yarn、Rust 的 Cargo、Python 的 pip 等等。當然,C/C++ 也有它自己的包管理器!

1. Conan(C/C++ Package Manager)

官網:https://conan.io/

GitHub 項目地址:https://github.com/conan-io/conan

Stars 數: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 也很簡單:

$ pipinstallconan

誰說C/C++沒有好的包管理器?這裡來一沓!C/C++學習者建議收藏


2.Buckaroo

官網:https://buckaroo.pm/

GitHub 項目地址:https://github.com/LoopPerfect/buckaroo

Stars 數:600

文檔:https://github.com/LoopPerfect/buckaroo/wiki

這個 C++ 包管理器是使用 F# 語言開發的。它的獨特之處就是直接從 GitHub、BitBucket、GitLab、託管的 Git 和 HTTP 中提取依賴項。同樣的,它也是完全分散的,沒有中央服務器。Buckaroo 使用 TOML 配置文件。

它的工作流大概是這樣的:

# Create your project file$ buckaroo init# Install dependencies$ buckarooaddgithub.com/buckaroo-pm/boost-thread@branch=master# Run your code$ buck run :my-app

安裝方法詳見Quick Install

誰說C/C++沒有好的包管理器?這裡來一沓!C/C++學習者建議收藏

3.vcpkg

GitHub 項目地址:https://github.com/microsoft/vcpkg

Stars 數:6k

文檔:https://vcpkg.readthedocs.io/

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

安裝方法詳見Quick Start。

4.Hunter

GitHub 項目地址:https://github.com/ruslo/hunter

Stars 數:2k

文檔:https://docs.hunter.sh

包:https://docs.hunter.sh/en/latest/packages.html

用於 C/C++ 的跨平臺包管理器。支持 Linux、Windows、macOS、iOS、Android、Raspberry Pi 等平臺。Hunter 主要用於管理帶有 CMake 構建系統的軟件包,現有的 CMake 軟件包可以很容易地集成到系統中,但是使用帶有ExternalProject_Add命令的自定義模板(構建方案)也支持非 CMake 軟件包。

注意:現在 Hunter 的 To be or not to be 已經成了問題,詳見Issue #1921。如果它在 https://patreon.com/ruslo 上沒有得到足夠的支持,維護者將會在 2019 年 8 月 25 日停止維護該項目。請謹慎使用!

開源不易,是人都要恰飯這個項目從 2013 年到現在,已經非常不易,目前已有 2k stars 了。大家可以給他 sponsor,讓他繼續走下去!

誰說C/C++沒有好的包管理器?這裡來一沓!C/C++學習者建議收藏


5.clib

GitHub 項目地址:https://github.com/clibs/clib

Stars 數:3k

文檔:https://github.com/clibs/clib/wiki

包:https://github.com/clibs/clib/wiki/Packages

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++沒有好的包管理器?這裡來一沓!C/C++學習者建議收藏


6.poac

GitHub 項目地址:https://github.com/poacpm/poac

Stars 數:341

官網:https://poac.pm/

文檔:https://doc.poac.pm/en/

包:https://poac.pm/packages

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

安裝也是一行命令搞定:

curl-fsSL https://sh.poac.pm|bash

誰說C/C++沒有好的包管理器?這裡來一沓!C/C++學習者建議收藏

學習C/C++編程知識,想要成為一個更加優秀的程序員,或者你學習C/C++的時候有難度,可以來筆者的C++編程學習圈,可以關注+私信小編【編程交流】進來,裡面不僅有學習視頻和文件資料,還有更多志同道合的朋友,和大家一起交流成長會比自己琢磨更快哦!


分享到:


相關文章: