打包一沓开源的 C/C++ 包管理工具送给你!
作者:HelloGitHub-ChungZH
博客:https://chungzh.cn/
包管理器可以帮助你更方便地安装依赖关系,并决定所安装的版本,提高你的开发幸福感。许多语言都有自己的包管理器,像 Node.js 的 npm/yarn、Rust 的 Cargo、Python 的 pip 等等。当然,C/C++ 也有它自己的包管理器!下面我们就来感受下这些库的魅力和特点吧~
1.Conan
GitHub 项目地址:https://github.com/conan-io/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[1] 寻找或分享你的 C/C++ 包。
想要安装 Conan 也很简单:
$ pip install conan
2.Buckaroo
GitHub 项目地址:https://github.com/LoopPerfect/buckaroo
Star 数:600
文档:https://github.com/LoopPerfect/buckaroo/wiki
这个 C++ 包管理器是使用 F# 语言开发的。它的独特之处就是直接从 GitHub、BitBucket、GitLab、托管的 Git 和 HTTP 中提取依赖项。同样的,它也是完全分散的,没有中央服务器。Buckaroo 使用 TOML 配置文件。
安装方法详见 Quick Install[2]。
它的工作流大概是这样的:
# 初始化项目文件
$ buckaroo init
# 安装依赖
$ buckaroo add github.com/buckaroo-pm/boost-thread@branch=master
# 运行你的代码
$ buck run :my-app
3.vcpkg
GitHub 项目地址:https://github.com/microsoft/vcpkg
Star 数:6k
文档:https://vcpkg.readthedocs.io/
vcpkg 是由微软爸爸开发的支持 Windows、Linux、Mac OS 的 C++ 库管理器,解决了 Windows 下常用依赖包的管理问题!它方便与 Visual Studio 集成,你可以使用 vcpkg search
搜索可用的包。它也可以从 Bitbucket、GitHub、GitLab 等获取包。
安装方法详见 Quick Start[3]。
4.clib
GitHub 项目地址:https://github.com/clibs/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
GitHub 项目地址:https://github.com/poacpm/poac
Star 数:341
文档:https://doc.poac.pm/en/
别看 poac 现在 stars 数量少,它其实很适合新手使用。它具有直观且易于使用的界面(像 npm 和 Cargo 一样)。独特的是,你可以在不了解 CMake 的情况下使用 poac 开发应用程序和库,专注于学习 C++ 而不会绊倒。作者还计划实现与其他构建系统和包管理器的集成,让你能够无缝切换。
安装也是一行命令搞定:
curl -fsSL https://sh.poac.pm | bash
参考资料
[1]Conan-Center: https://bintray.com/conan/conan-center
[2]Quick Install: https://github.com/LoopPerfect/buckaroo#quick-install
[3]Quick Start: https://github.com/microsoft/vcpkg#quick-start
关注公众号加入交流群,一起讨论有趣的技术话题
『精选开源项目系列』——跟着我们的文章,你会发现有趣的开源项目,从而爱上开源、爱上编程。加入我们、联系我们。让我们一起让更多人爱上开源、贡献开源~
打包一沓开源的 C/C++ 包管理工具送给你!相关推荐
- Day04-NPM包管理工具
NPM包管理工具 一.简介 1.什么是NPM 2.NPM工具的安装位置 二.使用npm管理项目 1.创建文件夹npmdemo 2.项目初始化 3.修改npm镜像 4.npm install命令的使用, ...
- 包管理工具,npm、yarn、pnpm
1.包管理工具概述 本门课程的前置知识:JavaScript.ES6.模块化.git 本门课程的所有代码均书写在 nodejs 环境中,不涉及浏览器环境 概念 模块(module) 通常以单个文件形式 ...
- 【包管理工具】Windows下的软件包管理工具Chocolatey介绍、安装软件出现错误的解决方法
文章目录 1. Chocolatey是什么? 2. 为什么要使用Chocolatey? 3. 如何下载Chocolatey? 4. 如何使用Chocolatey? 5. 示例一:使用Chocolate ...
- 前端工程化-包管理工具npm-yarn-cnpm-pnpm详细介绍以及如何选择
文章目录 包管理工具详解 npm包管理工具 1.代码共享的方案 2.npm包管理工具介绍 3.npm的配置文件 常见配置文件 常见配置文件属性 版本号的说明 4.npm install npm ins ...
- linux高级包管理工具,5 个给 Linux 新手的最佳包管理器
原标题:5 个给 Linux 新手的最佳包管理器 一个 Linux 新用户应该知道他或她的进步源自于对 Linux 发行版的使用,而 Linux 发行版有好几种,并以不同的方式管理软件包. 在 Lin ...
- linux更换包管理工具,技术|5 个给 Linux 新手的最佳包管理器
一个 Linux 新用户应该知道他或她的进步源自于对 Linux 发行版的使用,而 Linux 发行版有好几种,并以不同的方式管理软件包. 在 Linux 中,包管理器非常重要,知道如何使用多种包管理 ...
- Python包管理工具Distribute的安装
Python包管理工具Distribute的安装 Python的包管理工具常见的有easy_install, setuptools, 还有pip, distribute,那麽这几个工具有什么关系呢,看 ...
- Java基础-Eclipse第三方安装包管理工具之Maven
Java基础-Eclipse第三方安装包管理工具之Maven 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 玩过Linux的小伙伴应该都知道yum吧,我们只要把搭建好的yum仓库配 ...
- Python 包管理工具解惑
本文转载自http://zengrong.net/post/2169.htm,感谢原作者. 一.困惑 作为一个 Python 初学者,我在包管理上感到相当疑惑(嗯,是困惑).主要表现在下面几个方面: ...
最新文章
- ArchiCAD 23中文版
- Scrum联盟发布《2016年度Scrum状态调查报告》
- 双向TVS二极管 8KP33CA参数详解
- mysql分组后去重复数据_mysql去掉重复数据只保留一条,以及取分组后的一条数据...
- Exchange EMC打开出错 解决
- 超级电容怎么才能把内阻做小_骆驼电瓶怎么样?
- 七阶拉丁方阵_【C语言】输出N阶拉丁方阵并统计个数
- 今日恐慌与贪婪指数为73 贪婪程度有所上升
- pd虚拟机 17+win10、11懒人镜像 Mac
- 华硕电脑重装系统后电池管理软件ASUS Battery Health Charging不见了
- Booth算法笔算快捷方式
- 2020徐涛背诵笔记电子版pdf_2021徐涛冲刺背诵笔记电子版-2021徐涛冲刺背诵笔记pdf免费版下载_东坡手机下载...
- 【转】征集华人操作系统项目列表
- 量化交易1-backtrader介绍
- BigDecimal四舍五入保留两位小数
- exchange 2010 脱机地址簿操作
- 粘贴应变片步骤及注意事项
- 中国 GitHub 霸榜乱象! 国内程序员的脸都被丢尽了!
- 一个向上帝买了挂的男人!
- 如何设计一个开放平台openapi?
热门文章
- 产品经理不能做错的5件事
- java conversion_java 基本数据类型之间的转换(Conversion between Java basic data types).doc...
- Linux实战教学笔记35:企业级监控Nagios实践(下)
- AE模板-LOGO文字动态效果展示
- 【无标题】6. 青蛙与蚊子
- 【Orangepi Zero2 全志H616】语音刷抖音 / 手机连接Linux热拔插相关
- vue cli 接入 mock
- 发现一个学习Android的好博客
- LeetCode 三维形体的表面积
- 淘宝美食数据分析实战,三只松鼠居然这么强?