В установленном проекте, управляемом autotools, который почти всегда создается с помощью GCC, я решил попробовать использовать LLVM clang в качестве замены g ++, но обнаружил, что он падает при проверке заголовка, написанной лично, в которой используется стандартный макрос AC_CHECK_HEADER.Вот проверочный код:
oldCPPFLAGS=$CPPFLAGS
CPPFLAGS="$CPPFLAGS -I$GSLINCPATH"
AC_CHECK_HEADER([gsl/gsl_vector.h], [], [AC_MSG_ERROR([GSL vectors not found.])])
CPPFLAGS=$oldCPPFLAGS
и вот сообщение об ошибке:
checking gsl/gsl_vector.h usability... no
checking gsl/gsl_vector.h presence... no
checking for gsl/gsl_vector.h... no
configure: error: GSL vectors not found.
Значение $ GSLINCPATH равно / usr / include (явно проверено), / usr / include / gsl/gsl_vector.h существует, и этот контрольный код прекрасно работает с GCC.Временное включение модифицированного $ CPPFLAGS, похоже, является де-факто стандартным способом проведения этого теста, но есть ли лучший способ, который является более переносимым?Или есть другая причина этой проблемы?