在从源代码编译期间检查第三方库的依赖关系的最佳方法是什么?

在从源代码编译期间检查第三方库的依赖关系的最佳方法是什么?

我不明白与从源代码编译项目相关的一件事。

当第三方库丢失时我该如何反应?解决此类问题的最佳方法是什么?

例如,我从 github 克隆了一些代码。文档说,我唯一应该做的就是运行 makefile。但在编译过程中我得到了:

libmy/include/somefile.h:16:10: fatal error: 'GL/gl.h' file not found
#include <GL/gl.h>

我应该怎么办?我可以开始谷歌搜索 GL/gl.h 是什么,我会找到有关我应该安装的包的信息。但我不认为我必须在谷歌上搜索每个丢失的标题。这不可能是一个好的解决方案。

我可以使用类似的东西apt 文件搜索也许我会找到我应该安装的库。但我仍然必须以这种方式检查每个丢失的文件。

我认为问题出在项目中。但我不知道应该如何解决。 makefile 是否应该检查所有东西是否都已安装?

我读到pkg 配置这看起来可以帮助解决我的问题。我应该使用pkg 配置检查丢失的库?

如果什么pkg 配置丢失,或者用户不想安装它?

有没有更好的方案来解决此类问题呢?

答案1

许多软件包包含特殊configure脚本,其目的是检查主机上安装的任何依赖项。其他人则采用其他机制,这些机制通常在源包内的 README 或 INSTALL 文件中提到。很少有人可以将其编译为独立程序,并且它们不会尝试检测依赖项或没有任何依赖项。

如果您从 GitHub 获取代码,那么您应该为不完整的代码做好准备,这些代码最终无法像这样编译。然后,如果您显然无法说出该文件来自哪个依赖项(并且您下载的代码没有文档),则只能通过谷歌搜索它。另外,随着您的 Unix 经验的增长,许多头文件名会被记住:-)

合理的包有脚本(或其他机制)来检查依赖项和/或说明您将需要哪些依赖项的文档,不完整或较差的包根本没有这些依赖项。

相关内容