我尝试通过将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

09-03 22:10