gpt4 book ai didi

debian - C++11 的 autoconf AC_CHECK_HEADERS

转载 作者:行者123 更新时间:2023-12-04 18:02:07 27 4
gpt4 key购买 nike

我正在尝试使用 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++ 编译器的 autoconf 运行的测试添加 -std=c++11进入测试(和 iirc 进入生成的 Makefile)。

要在 autotools 中执行此操作,有一个宏 AX_CXX_COMPILE_STDCXX_11 这将测试 c++11 支持(可选或强制性),然后设置适当的编译器标志以在您的构建和测试中启用该支持。将此宏放在头检查之前,头检查将在 C++11 支持下运行。

关于debian - C++11 的 autoconf AC_CHECK_HEADERS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33582925/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com