我尝试通过将AX_CXX_COMPILE_STDCXX_11
添加到configure.ac文件中来启用CDT中的C++ 11。我尝试过在文件中移动它,这似乎是唯一不会出错的地方。我什至尝试添加可选的noext
标志,但这给了我一个语法错误。
我尝试编译的代码是:
#include <iostream>
#include <memory>
void
print_hello(){
std::unique_ptr<char[]> cha;
std::cout << "11?" << std::endl;
}
当然,unique_ptr是c++ 11的功能。
这是我的configure.ac的外观:
dnl Process this file with autoconf to produce a configure script.
AC_PREREQ(2.64)
AC_INIT(fooProj, 1.0)
AC_CANONICAL_SYSTEM
AC_PROG_CXX
AC_LANG([C++])
AX_CXX_COMPILE_STDCXX_11
dnl Initialize automake
AM_INIT_AUTOMAKE
dnl this allows us specify individual liking flags for each target
AM_PROG_CC_C_O
dnl Initialize Libtool
LT_INIT
dnl Check if Libtool is present
dnl Libtool is used for building share libraries
AC_PROG_LIBTOOL
AC_CONFIG_FILES(Makefile
exampleProgram/Makefile
libTestLib/Makefile
include/Makefile)
AC_OUTPUT
最佳答案
如果您只想使代码编译为C++ 11标准,请清理您的构建,然后将AM_CXXFLAGS = -std=c++11
添加到源代码所在的Makefile.am
中,然后重新构建。为此,不需要AX_CXX_COMPILE_STDCXX_11
中的configure.ac
。