1

我知道如何在我的 configure.ac 文件中检查函数、库和模块。但我不知道如何检查是否存在仅标头库。

假设我想用 C++ 编写一个项目并且我想使用一个头库,例如一个 C++ 模板。例如,提升哈希。它是 Boost 对 std::hash 的扩展。

检查 configure.ac 是否安装了 Boost Hash 的标准方法是什么?我寻找答案,但我发现的只是检查特定的头文件或库,而我需要的是检查头文件库的存在。

在 Autoconf 中是否有标准的方法,或者我需要手动检查我需要的标题,一个一个?

我发现了几个测试 Boost 库是否存在的 M4 宏,但这是特定于 Boost 的解决方案。我如何处理其他头库,比如我自己编写的头库?

4

1 回答 1

3

主要取决于您的需求......但是,检查每个头文件并不是一个好主意(因为,在提升的情况下,可能需要很长时间:)。

如果你的软件需要这个库,你可以检查最重要的头文件。您甚至可以尝试构建一个示例程序,以检查一切是否正常。例如,它可能#include只是打印一个库版本(如果需要,可以进一步检查)......如果失败,您必须发出错误。如果这个库是可选的,你可以发出警告/信息/任何东西,并HAS_BLAH_BLAH在你生成的config.h文件中定义,然后在之前检查这个定义#include——但无论如何,尝试构建最简单的例子——它比检查是否存在更好所有图书馆的标题...

于 2013-07-26T08:52:37.343 回答