Autoconf - 设置用于检查的编译器标志

Autoconf - 设置用于检查的编译器标志

我正在尝试使用它autoconf来创建configure脚本。但是,我想要检查的一些标头需要额外的编译器标志(例如c++11)。我可以得到部分答案这里文件中的相关行如下所示configure.ac

AX_CXX_COMPILE_STDCXX_11(,[mandatory])
AC_CHECK_HEADER("CL/cl2.hpp")

但该std=gnu++11标志没有传递到预处理步骤,AC_CHECK_HEADERS我最终得到了奇怪的结果,它可用但不存在:

checking CL/cl2.hpp usability... yes
checking CL/cl2.hpp presence... no

查看显示config.log以下几行:

configure:3423: checking CL/cl2.hpp presence
configure:3423: g++ -E conftest.cpp
In file included from conftest.cpp:19:0
/usr/include/CL/cl2.hpp:442:2: error #error Visual studio 2013 or another C++11-supported compiler required

我可以清楚地看到 C++ 标志没有被使用。如何在这些预处理器步骤中使用编译器标志?

编辑

CXXCPP我可以通过在运行时手动设置来手动解决此问题configure,但我希望它能够在最终用户不需要知道这一点的情况下运行。

./configure CXXCPP="g++ -E -std=gnu++11"

答案1

我目前提出的解决方案是手动添加:

CXXCPP="g++ -E -std=gnu++11"

直接到configure.ac文件。我很高兴听到任何其他答案。

答案2

我必须像这样运行配置:

./configure CCFLAGS="-std=c++11" CXXFLAGS="-std=c++11" CXXCPP="-std=c++11"

相关内容