Проверка на наличие только заголовочной библиотеки в autoconf

Я знаю, как проверить функции, библиотеки и модули в моем файле configure.ac. Но я не знаю, как проверить наличие библиотеки только для заголовков.

Предположим, я хочу написать проект на C ++ и использовать библиотеку заголовков, например, шаблон C ++. Например, Boost Hash. Это расширение std :: hash для Boost.

Какой стандартный способ проверить в configure.ac, установлен ли Boost Hash? Я искал ответ, но все, что я нашел, это проверка конкретных заголовков или библиотек, в то время как мне нужно было проверить наличие библиотека заголовков.

Есть ли стандартный способ сделать это в Autoconf, или мне нужно вручную проверять нужные мне заголовки, один за другим?

Я нашел несколько макросов M4, которые проверяют существование библиотек Boost, но это решение относится только к Boost. Что мне делать с другими библиотеками заголовков, такими как те, которые я пишу сам?

1

Решение

в основном это зависит от ваших потребностей … но проверка для каждого заголовочного файла не очень хорошая идея (потому что, в случае повышения, это может занять много времени :).

если ваше программное обеспечение требовать В этой библиотеке вы можете проверить наличие наиболее важных заголовков. Вы даже можете попробовать создать пример программы, просто чтобы убедиться, что все выглядит хорошо. например это может #include что-то и просто распечатать версию библиотеки (для дальнейших проверок, если вам нужно) … в случае сбоя вы должны выдать ошибку. если эта библиотека необязательна, вы можете просто выдать предупреждение / info / что угодно и определить HAS_BLAH_BLAH в вашем сгенерированном config.h файл, а затем проверьте это определение, прежде чем #include — но в любом случае попробуйте построить даже самый простой пример — это лучше, чем проверка на наличие всех заголовков библиотеки …

3

Другие решения

Других решений пока нет …