我知道如何检查configure.ac文件中的函数,库和模块。但我不知道如何检查是否存在仅限标题的库。
假设我想用C ++编写一个项目,我想使用一个标题库,例如一个C ++模板。例如,Boost Hash。这是Boost对std :: hash的扩展。
在configure.ac中检查是否安装了Boost Hash的标准方法是什么?我寻找答案,但我发现只是检查特定的标题或库,而我需要检查是否存在标题库。
在Autoconf中是否有标准的方法,或者我需要逐个手动检查我需要的标题?
我找到了几个测试Boost库存在的M4宏,但这是一个特定于Boost的解决方案。我如何处理其他标题库,比如我自己写的那些?
答案 0 :(得分:3)
主要取决于你的需求...但是,检查每个头文件并不是一个好主意(因为,如果是提升,可能会花费很长时间:)。
如果您的软件需要此库,您可以检查最重要的标头。你甚至可以尝试构建一个示例程序,只是为了检查一切看起来没问题。例如,它可能#include
smth并且只打印一个版本的库(如果需要,可以进一步检查)...如果失败,你必须发出错误。如果此库是可选的,您可以发出警告/信息/任何内容,并在生成的HAS_BLAH_BLAH
文件中定义config.h
,然后在#include
之前检查此定义 - 但无论如何,请尝试建立一个最简单的例子 - 它比检查所有库标题的存在更好......