我正在尝试使用autoconf
创建配置脚本。一个重要的检查是存在特定的头文件。这通常非常简单,我的configure.ac
文件中包含以下行。
AC_CHECK_HEADERS("CL/cl2.hpp")
但是,此头文件中的某些代码需要C ++ 11。因此,在运行生成的./configure
后,我在config.log
中发现以下错误。
configure:3166: checking CL/cl2.hpp usability
configure:3166: g++ -c -g -O2 conftest.cpp >&5
In file included from conftest.cpp:52:0:
/usr/include/CL/cl2.hpp:442: error #error Visual studio 2013 or another C++11-supported compiler required
现在我正在使用Debian Stretch
,而g ++版本是5.2.1
,所以我知道它支持C ++ 11。如何使用autoconf
创建configure
文件来检查此头文件?
答案 0 :(得分:1)
您需要设置编译器选项以在CXXFLAGS变量中启用c ++ 11方言。例如,您可以致电:
CXXFLAGS=-std=c++11 ./configure
这将导致autoconf运行的所有测试使用c ++编译器将-std=c++11
添加到测试中(并将iirc添加到生成的Makefile中)。
要在autotools中执行此操作,有一个宏AX_CXX_COMPILE_STDCXX_11
将测试c ++ 11支持(可选或必需),然后设置适当的编译器标志以在构建和测试中启用该支持。在标头检查之前放置此宏,并且将使用c ++ 11支持运行标头检查。