Нет, это невозможно.Все, что вы можете сделать, это попробовать #include
заголовок, и, если он не существует, компилятор выдаст вам ошибку.
Альтернативой может быть использование такого инструмента, как GNU autoconf .autoconf генерирует скрипт оболочки с именем configure
, который анализирует вашу систему сборки и определяет, например, установлены ли у вас определенные файлы заголовков, и генерирует файл заголовков, состоящий из макросов, указывающих эту информацию.
Например,он может определить HAVE_SYS_TIME_H
, если ваша система сборки содержит заголовок <sys/time.h>
, поэтому вы можете написать такой код:
#if HAVE_SYS_TIME_H
#include <sys/time.h>
#else
#warning "Don't worry, you can fix this."
#endif