带自动工具的CDT中的C++11
我尝试在CDT中启用C++11,方法是将AX_CXX_COMPILE_STDCXX_11添加到configure.ac文件中。我试着在文件中移动它,这似乎是唯一一个不会出错的地方。我甚至尝试添加可选的noext标志,但这给了我一个语法错误 我试图编译的代码是:带自动工具的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::
#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