Я попытался включить C ++ 11 в CDT, добавив AX_CXX_COMPILE_STDCXX_11
в мой файл configure.ac. Я попытался переместить его в файл, кажется, это единственное место, где это не ошибка. Я даже попытался добавить дополнительный 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
для этого не нужно.
Вам нужен макрос m4 с этой страницы на сайте GNU [1]. Сохраните его как ax_cxx_compile_stdcxx_11.m4 в корне вашего проекта.
[1]: http://www.gnu.org/software/autoconf-archive/ax_cxx_compile_stdcxx_11.html «»sudo apt-get install autoconf-archive