开启辅助访问 切换到窄版

打印 上一主题 下一主题

谁说C/C++没有好的包管理器?这里来一沓!C/C++学习者建议收藏

[复制链接]
作者:家园99 
版块:
嵌入式操作系统 linux 发布时间:2020-3-19 06:26:22
11920
楼主
跳转到指定楼层
| 只看该作者 回帖奖励 |倒序浏览 |阅读模式
包管理器可以帮助你更方便地安装依赖关系,并决定所安装的版本,提高你的开发幸福感。许多语言都有自己的包管理器,像 Node.js 的 npm/yarn、Rust 的 Cargo、Python 的 pip 等等。当然,C/C++ 也有它自己的包管理器!
1. Conan(C/C++ Package Manager)
官网:http://conan.io/
GitHub 项目地址:http://github.com/conan-io/conan
Stars 数:3k
文档:http://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


2.Buckaroo
官网:http://buckaroo.pm/
GitHub 项目地址:http://github.com/LoopPerfect/buckaroo
Stars 数:600
文档:http://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



3.vcpkg
GitHub 项目地址:http://github.com/microsoft/vcpkg
Stars 数:6k
文档:http://vcpkg.readthedocs.io/
vcpkg 是由微软爸爸开发的支持 Windows、Linux、Mac OS 的 C++ 库管理器,解决了 Windows 下常用依赖包的管理问题!它方便与 Visual Studio 集成,你可以使用vcpkg search搜索可用的包。它也可以从 Bitbucket、GitHub、GitLab 等获取包。
安装方法详见Quick Start。
4.Hunter
GitHub 项目地址:http://github.com/ruslo/hunter
Stars 数:2k
文档:http://docs.hunter.sh
包:http://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。如果它在 http://patreon.com/ruslo 上没有得到足够的支持,维护者将会在 2019 年 8 月 25 日停止维护该项目。请谨慎使用!
开源不易,是人都要恰饭这个项目从 2013 年到现在,已经非常不易,目前已有 2k stars 了。大家可以给他 sponsor,让他继续走下去!


5.clib
GitHub 项目地址:http://github.com/clibs/clib
Stars 数:3k
文档:http://github.com/clibs/clib/wiki
包:http://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"]}


6.poac
GitHub 项目地址:http://github.com/poacpm/poac
Stars 数:341
官网:http://poac.pm/
文档:http://doc.poac.pm/en/
包:http://poac.pm/packages
别看 poac 现在 stars 数量少,它其实很适合新手使用。poac 具有直观且易于使用的界面(像 npm 和 Cargo一样)。独特的是,你可以在不了解CMake 的情况下使用 poac 开发应用程序和库,专注于学习 C++ 而不会绊倒。作者还计划实现与其他构建系统和包管理器的集成,让你能够无缝切换。
安装也是一行命令搞定:
curl-fsSL http://sh.poac.pm|bash


学习C/C++编程知识,想要成为一个更加优秀的程序员,或者你学习C/C++的时候有难度,可以来笔者的C++编程学习圈,里面不仅有学习视频和文件资料,还有更多志同道合的朋友,和大家一起交流成长会比自己琢磨更快哦!
企鹅群:1053276368(持续招募中)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表