只是想知道安装cpp包的最好方法。我的背景是JS/Ruby/等,所以没有cpm
之类的东西看起来很奇怪。我遗漏了什么?我想事情不是这么简单的。
例如,我甚至不能使用#include <iostream>
运行.cpp文件,因为我得到的是fatal error: 'iostream' file not found
编辑的清晰度:iostream
是一个很糟糕的例子,当我写这篇文章的时候,我的系统配置被篡改了。在你的想象中用一个非标准库替换它。
发布于 2016-03-16 06:10:47
似乎有一些,虽然我从来没有用过它们。
dds https://github.com/vector-of-bool/dds
黑石物理服务器http://www.cpm.rocks/
spack https://spack.io
buckaroo http://buckaroo.pm
发布于 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之上的,谢谢!
发布于 2015-06-15 21:57:53
没有,当然没有官方的C/C++包管理器,但我会给你一些建议,希望能让你的日子过得更好。
首先,我建议研究CMake或GENie以可扩展和跨平台的方式将库合并到您的构建系统中的方法。但是,它们都假设您的库位于“容易找到”的位置,或者它们与您的项目具有相同的构建系统。有很多方法可以教你如何找到你需要的库。所有其他解决方案都是特定于平台的。
如果您的项目中有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在几年内应该是最终的赢家,但在撰写本文时,它仍然是即将到来的。
https://stackoverflow.com/questions/27866965
复制相似问题