我使用AX_CXX_COMPILE_STDCXX_0X(可以查看autoconf- c++11 )来检查编译器的归档功能。它会正确地确定-std=c++0x是必需的,但不会将其添加到CXXFLAGS。我看了一下宏源代码,它实际上会检查,但随后会恢复之前的标志。
如何设置CXXFLAGS才能编译c++11源代码?
仅仅将-std=c++0x添加到AM_CXXFLAGS中并不是一个很好的解决方案,因为我想把让编译器在C++11模式下编译的重担放在autoconf开发人员身上,而不是我身上。
发布于 2012-08-11 06:59:03
你正在寻找的东西已经作为autoconf-archive的一部分作为AX_CXX_COMPILE_STDCXX_11生成了。它将向环境中添加所需的选项(以前是通过CXXFLAGS,现在是通过CXX),如果没有可用的C++11支持,则会出错。
发布于 2018-03-28 00:56:34
通常,您可以编译一段简单的代码并根据编译的结果设置一个变量
DIALECT="-std=c++14"
echo 'int main() {return 0;}' > ./log.cpp && $CXX -std=c++14 ./log.cpp || $DIALECT="no"
if test $DILAECT = no; then
AC_MSG_ERROR([c++ compiler does not support c++14])
else
echo $DILAECT
fihttps://stackoverflow.com/questions/11909347
复制相似问题