Debian C+;的autoconf AC#u CHECK#u头+;11

Debian C+;的autoconf AC#u CHECK#u头+;11,debian,autoconf,Debian,Autoconf,我正在尝试使用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.cp

我正在尝试使用
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
文件以检查此头文件?

您需要设置编译器选项以在CXXFLAGS变量中启用c++11方言。例如,您可以调用:

CXXFLAGS=-std=c++11 ./configure
<>这将导致使用C++编译器运行的所有测试都使用C++编译器将<代码> -STD= C++ 11 <代码>添加到测试中(并且将Irc添加到生成的MaX文件中)。
为了在autotools中实现这一点,有一个宏将测试是否支持c++11(可选或必需),然后设置适当的编译器标志以在构建和测试中启用该支持。将此宏置于标头检查之前,标头检查将在c++11支持下运行

谢谢,这解决了问题。尽管我想补充一点,我需要安装
autoconf-archive
来获取
AX\u CXX\u COMPILE\u STDCXX\u 11
宏。接下来的问题是,这是操作系统不可知论吗?生成的配置脚本在Mac或Windows系统上工作吗?另外,有趣的是,
config.log
中检查
.hpp
文件存在的下一行继续不使用
-std=gnu++11
选项,从而导致警告。不知道为什么。