sil*_*der 14 c++ open-source compilation
我对C++世界很新,所以请抱歉,对于这样一个虚假的问题.我谷歌一点,但无法找到正确的答案.
我的问题很简单 - 我应该如何在C++世界中使用lib.例如在Java中-有maven和gradle这个任务.在Python中 - 我使用pip.在javascript中npm并bower做所有的事情.在C#中,您使用nuget或只是将DLL lib添加到项目中.但在C++中看起来并不是那么容易.
我发现了一个工具,conan但是他们拥有的库很少,而且不包含任何我想要的东西.
所以,例如 - 我想使用nlp lib meta.似乎他们没有提供任何安装程序文件.所以我假设我需要从github获取源代码.我应该编译它们然后尝试将编译后的文件添加到我的项目中,或者我需要lib在我的项目中添加文件夹,并将meta's源文件放在那些文件夹中,并在使用meta's源代码后在我的项目中操作?
我的问题不是关于如何安装特定的metalib,而是从源代码管理的角度来看.如果我使用Visual Studio上Windows的例子,但我colegue将编码Clion下Linux.我不想知道哪种是在C++世界中管理依赖关系的正确方法.
遗憾的是,C++ 没有库的包管理器。有些人在那里并试图成为一个仍然很小且分散的人(例如柯南)。
在 Linux 中,您可以安装一些“-dev”软件包,但它们也不是“全部”。
您很可能最终会自己下载它们。接下来是集成这些库的问题。每个操作系统都有不同的构建系统,因此您必须了解如何构建 C++ 文件。
就像在带有 Visual Studio 的 Windows 中一样,您必须获取 Visual Studio 项目或 nmake 兼容的 makefile 来构建库,然后将它们添加到您的项目中。与 linux makefile 相同。
有几个更高级别的构建框架,例如cmake. 您帖子中的示例也适用于 CMake。因此,将其集成到 cmake 构建环境中会更容易,但这仅适用于也尝试使用/集成 cmake 构建环境的其他库(例如 boost / qt 正在这样做)。
是的,这些是对此的一些想法。遗憾的是,这个问题不会有一个简单/明确的答案,因为没有真正的中央 C++ 数据包存储库也集成到构建系统中。
C ++没有类似pip或的东西npm/bower。我不知道是否maven还是gradle可以说服处理C ++库。
通常,您将不得不以
您可以通过在计算机上构建它们(通常用于开放源代码项目和针对Linux平台的项目)或下载预编译的二进制文件(对于Windows库,特别是付费的)来获取库文件。
希望,有关图书馆建设的说明将包含在图书馆的网站上。正如评论中指出的那样,“元”似乎很擅长。
尝试使用库进行编译时,可能需要命令行选项(例如-I)来指定包含头文件的目录,并且可能需要链接器选项(例如-l)来告诉链接器针对您的库进行链接。