1

我尝试通过添加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
4

3 回答 3

3

如果您只想将代码编译为 C++11 标准,然后清理您的构建,然后添加AM_CXXFLAGS = -std=c++11Makefile.am您的源代码所在的位置,然后重新构建。为此不需要AX_CXX_COMPILE_STDCXX_11in 。configure.ac

于 2013-07-30T13:53:09.927 回答
1

您需要 gnu 网站 [1] 上此页面的 m4 宏。在项目根目录中将其另存为 ax_cxx_compile_stdcxx_11.m4。

[1]:http ://www.gnu.org/software/autoconf-archive/ax_cxx_compile_stdcxx_11.html “”

于 2013-08-27T19:59:59.760 回答
0
sudo apt-get install autoconf-archive
于 2016-10-01T10:16:35.887 回答