C 如何管理依赖项(例如使用来自 github 的库)

新手上路,请多包涵

我对 C++ 世界很陌生,所以请原谅我提出这样一个愚蠢的问题。我google了一下,但找不到正确的答案。

我的问题很简单——我应该如何在 C++ 世界中使用 lib。例如在 Java 中 - 有 mavengradle 用于此任务。在 Python 中 - 我使用 pip 。在javascript npmbower 做所有的事情。在 C# 中,您使用 nuget 或只是将 DLL lib 添加到您的项目中。但看起来在 C++ 中事情并不那么容易。

我找到了一个名为 conan 的工具,但是他们拥有的库数量非常少,并且不包括我想要的任何东西。

所以,例如 - 我想使用 nlp lib meta 。好像他们没有提供任何安装程序文件。所以我假设我需要从 github 获取资源。我应该编译它们然后尝试将编译后的文件添加到我的项目中,还是我需要在我的项目中有 lib 文件夹,并将 meta's 源放在这些文件夹中,然后使用 meta's 在我的项目中的来源?


我的问题不是关于如何安装特定的 meta lib,而是从源代码管理的角度来看。例如,如果我在 Windows Visual Studio ,但我的同事将在 —4c50e2849c8868 下编码 Clion Linux 而且我不知道哪种方法是在 C++ 世界中管理依赖项的正确方法。

原文由 silent_coder 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 614
1 个回答

C++ 没有 pipnpm/bower 之类的东西。我不知道是否可以说服 mavengradle 来处理 C++ 库。

一般来说,你最终将不得不

  • 某个目录中的头文件
  • 库文件(静态库或 DLL/共享对象)。如果该库是像某些 boost 库一样的仅标头库,那么您将不需要它。

您可以通过在您的机器上构建它们(通常用于开源项目和针对 Linux 平台的项目)或下载预编译的二进制文件(通常用于 Windows 库,特别是付费的)来获取库文件。

希望建立图书馆的说明将包含在图书馆网站上。正如评论中所指出的,“元”似乎很擅长这一点。

当您尝试使用该库进行编译时,您可能需要一个命令行选项(例如 -I )来指定包含头文件的目录,并且您可能需要一个链接器选项(例如 -l ) 告诉链接器链接到您的库。

原文由 Martin Bonner supports Monica 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题