首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >C++有没有像npm、pip、gem等这样的包管理器?

C++有没有像npm、pip、gem等这样的包管理器?
EN

Stack Overflow用户
提问于 2015-01-10 02:32:04
回答 5查看 44.7K关注 0票数 104

只是想知道安装cpp包的最好方法。我的背景是JS/Ruby/等,所以没有cpm之类的东西看起来很奇怪。我遗漏了什么?我想事情不是这么简单的。

例如,我甚至不能使用#include <iostream>运行.cpp文件,因为我得到的是fatal error: 'iostream' file not found

编辑的清晰度iostream是一个很糟糕的例子,当我写这篇文章的时候,我的系统配置被篡改了。在你的想象中用一个非标准库替换它。

EN

回答 5

Stack Overflow用户

发布于 2016-03-16 06:10:47

票数 61
EN

Stack Overflow用户

发布于 2017-01-01 21:07:59

根据它的36+ GitHub贡献者和我发现他们的Getting Started documentation足够容易开始工作的事实,是今天的明显赢家。它也是MIT licensed

我很惊讶在其他答案中没有提到柯南的documentation even compares it to biicode,但是biicode似乎和cpm一样被遗弃了。

pacm有一些活动,但它是LGPL,这对于一些项目来说可能是一个问题。

这是建立在user3071643's answer之上的,谢谢!

票数 48
EN

Stack Overflow用户

发布于 2015-06-15 21:57:53

没有,当然没有官方的C/C++包管理器,但我会给你一些建议,希望能让你的日子过得更好。

首先,我建议研究CMakeGENie以可扩展和跨平台的方式将库合并到您的构建系统中的方法。但是,它们都假设您的库位于“容易找到”的位置,或者它们与您的项目具有相同的构建系统。有很多方法可以教你如何找到你需要的库。所有其他解决方案都是特定于平台的。

如果您的项目中有Node.js或haxelib,那么npm和haxelib都有方法可以分别从JavaScript或haxelib使用C++ (以预编译的dll/so形式),但这是一个很大的假设,而且可能是错误的,因为您将在一个真正需要C/C++提供的好处的项目中使用Node.js或haxelib。

对于微软的世界,我相信NuGet has some C++ libraries,虽然它的平台支持受限于Visual Studio,可能还有Windows,但它可能最适合你所说的“包系统”,给出了你的例子(假设你的意思是cpm是一个C包管理器,npm是节点包管理器)。

对于Linux世界,从技术上讲,rpm、yum和apt-get作为C/C++开发包管理器的功能与系统包管理器的功能相同,但与npm不同的是,您必须始终全局安装包,但是如果您的应用程序是Linux应用程序,那么它很可能位于一个或多个这些管理器上的包中,并且包中嵌入了依赖项列表,因此这不是什么大问题。

在macOS/iOS的世界里有CocoaPods,但就像NuGet一样,你被锁定在苹果平台上。如果您对Linux风格的包管理器作为开发包管理器感到满意,那么总会有MacPorts,如上一段所述。

我想要这个npm,本地安装,某种跨平台的功能,但是由于C/C++在这么多平台上使用(所有的平台?),像我这样的C/C++程序员倾向于使用他们自己的……一切,这让我们所有人(不必要的?)由于工作繁忙,没有太多人推动这样的项目,这是一种耻辱。也许,你应该做一个?这肯定会让我的日子过得更好。

更新

Conan是我们一直想要的C/C++包管理器。它既有本地服务器,也有全局服务器,因此它对业务包和开源包都有好处。它很年轻,而且它的全局存储库没有太多的包。我们都应该努力将包添加到其中!

更新2

我发现vcpkg在Windows和Android上非常有用。如果您不能接受Conan.io是用Python语言编写的事实,那么它可能值得一看。

此外,尽管它要求您为自己和所有依赖项使用它,但我相信Build 2在几年内应该是最终的赢家,但在撰写本文时,它仍然是即将到来的。

票数 27
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27866965

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档