1

AX_CXX_COMPILE_STDCXX_11configure.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++11ある場所に追加してからMakefile.am再ビルドします。これにはAX_CXX_COMPILE_STDCXX_11inconfigure.acは不要です。

于 2013-07-30T13:53:09.927 に答える
1

gnu Web サイトのこのページから m4 マクロが必要です [1]。プロジェクト ルートに 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 に答える