Я знаю, как проверить функции, библиотеки и модули в моем файле configure.ac. Но я не знаю, как проверить наличие библиотеки только для заголовков.
Предположим, я хочу написать проект на C ++ и использовать библиотеку заголовков, например, шаблон C ++. Например, Boost Hash. Это расширение std :: hash для Boost.
Какой стандартный способ проверить в configure.ac, установлен ли Boost Hash? Я искал ответ, но все, что я нашел, это проверка конкретных заголовков или библиотек, в то время как мне нужно было проверить наличие библиотека заголовков.
Есть ли стандартный способ сделать это в Autoconf, или мне нужно вручную проверять нужные мне заголовки, один за другим?
Я нашел несколько макросов M4, которые проверяют существование библиотек Boost, но это решение относится только к Boost. Что мне делать с другими библиотеками заголовков, такими как те, которые я пишу сам?
в основном это зависит от ваших потребностей … но проверка для каждого заголовочного файла не очень хорошая идея (потому что, в случае повышения, это может занять много времени :).
если ваше программное обеспечение требовать В этой библиотеке вы можете проверить наличие наиболее важных заголовков. Вы даже можете попробовать создать пример программы, просто чтобы убедиться, что все выглядит хорошо. например это может #include
что-то и просто распечатать версию библиотеки (для дальнейших проверок, если вам нужно) … в случае сбоя вы должны выдать ошибку. если эта библиотека необязательна, вы можете просто выдать предупреждение / info / что угодно и определить HAS_BLAH_BLAH
в вашем сгенерированном config.h
файл, а затем проверьте это определение, прежде чем #include
— но в любом случае попробуйте построить даже самый простой пример — это лучше, чем проверка на наличие всех заголовков библиотеки …
Других решений пока нет …