Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/132.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带自动工具的CDT中的C++11_C++_C++11_Eclipse Cdt_Autotools - Fatal编程技术网

带自动工具的CDT中的C++11

带自动工具的CDT中的C++11,c++,c++11,eclipse-cdt,autotools,C++,C++11,Eclipse Cdt,Autotools,我尝试在CDT中启用C++11,方法是将AX_CXX_COMPILE_STDCXX_11添加到configure.ac文件中。我试着在文件中移动它,这似乎是唯一一个不会出错的地方。我甚至尝试添加可选的noext标志,但这给了我一个语法错误 我试图编译的代码是: #include <iostream> #include <memory> void print_hello(){ std::unique_ptr<char[]> cha; std::

我尝试在CDT中启用C++11,方法是将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;
}

如果您只想将代码编译成C++11标准,那么请清理构建,然后将AM_CXXFLAGS=-std=C++11添加到源代码所在的Makefile.AM中,然后重新构建。configure.ac中的AX_CXX_COMPILE_STDCXX_11对此是不必要的。

如果您只想将代码编译为C++11标准,请清理生成,然后将AM_CXXFLAGS=-std=C++11添加到源代码所在的Makefile.AM中,然后重新生成。不需要configure.ac中的AX_CXX_COMPILE_STDCXX_11进行此操作。

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


[1] :

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



[1] :

您会遇到什么样的错误?将-std=c++11传递给编译器还不够吗?我得到一个错误,unique_ptr不是std的一部分。编译器标志就足够了,但这似乎不是正确的自动工具方式。这个错误是来自Eclipse吗?我的意思是,尽管有错误,代码是否编译?不,它来自g++,编译器没有通过-std标志。好了,现在我理解了问题。你会遇到什么样的错误?将-std=c++11传递给编译器还不够吗?我得到一个错误,unique_ptr不是std的一部分。编译器标志就足够了,但这似乎不是正确的自动工具方式。这个错误是来自Eclipse吗?我的意思是,尽管有错误,代码是否编译?不,它来自g++,编译器没有通过-std标志。好的,现在我理解了问题。但是autotools不会检查编译器是否支持C++11,或者这是否不正确?autotools不会检查编译器是否支持C++11;但是如果没有,编译器将拒绝-std=c++11选项并停止。那么我想我在另一个网页上读到的是错误的。进行配置检查似乎更为正确。谢谢。我同意进行配置检查更为正确。我刚刚学会了用autotools宏选择阻力最小的路径:但是autotools不会检查编译器是否支持C++11,或者这是否正确?autotools不会检查编译器是否支持C++11;但是如果没有,编译器将拒绝-std=c++11选项并停止。那么我想我在另一个网页上读到的是错误的。进行配置检查似乎更为正确。谢谢。我同意进行配置检查更为正确。我刚刚学会使用autotools宏选择阻力最小的路径:
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
sudo apt-get install autoconf-archive