C++ 如何构建NS-3以使用C++;0x/C++;11个图书馆?

C++ 如何构建NS-3以使用C++;0x/C++;11个图书馆?,c++,gcc,c++11,waf,ns-3,C++,Gcc,C++11,Waf,Ns 3,我需要在网络模拟器NS-3中的代码中使用数据结构,如无序_映射。 它使用waf builder编译源代码。 我不知道应该在哪里添加-std=c++0x以添加到编译器标志? 我尝试使用以下命令将其附加到主wscript文件中的CXXFlags: module.env.append_value('CXXFLAGS', '-std=c++0x'); 但我还是犯了这个错误: error: #error This file requires compiler and library support fo

我需要在网络模拟器NS-3中的代码中使用数据结构,如无序_映射。 它使用waf builder编译源代码。 我不知道应该在哪里添加-std=c++0x以添加到编译器标志? 我尝试使用以下命令将其附加到主wscript文件中的CXXFlags:

module.env.append_value('CXXFLAGS', '-std=c++0x');
但我还是犯了这个错误:

error: #error This file requires compiler and library support for the ISO C++ 2011 standard. This support is currently experimental, and must be enabled with the -std=c++11 or -std=gnu++11 compiler options.

此文件需要编译器和库支持,支持即将到来的ISO C++标准C++ 0x。此支持目前处于试验阶段,必须使用-std=c++0x或-std=gnu++0x编译器选项启用。C/C++问题

我是否也应该向waf模块添加任何库

我的GCC版本是4.4

更新:更新到4.7后,我收到以下错误:

error: #error This file requires compiler and library support for the ISO C++ 2011 standard. This support is currently experimental, and must be enabled with the -std=c++11 or -std=gnu++11 compiler options.
有没有办法告诉编译器使用0x而不是11

以下是解决方案:

首先,将Ns-3的GCC升级到4.7将由于标准的更改而导致更多错误,并且不能解决问题。所以我把gcc和g++改回了4.4.3

但为了消除此错误(如图所示),应将此选项添加到CXXFLAGS中:

-std=c++0x
要向CXXFLAG添加选项,可以使用以下选项:

CXXFLAGS="-std=c++0x" ./waf configure
或者,如果要向waf配置添加选项:

CXXFLAGS="-std=c++0x" ./waf -d debug --enable-examples --enable-tests configure

您是否考虑过使用比两年前更新的GCC版本?尝试使用更新的GCC版本(我会说至少是4.6,但如果您使用C++11,甚至是4.7.1)@ NigoBuras我更新了我的GCC和G++到4.7并且重新配置了NS,但是现在当它达到相同的点时,它给出了这个错误:Error:错误。这个文件需要编译器和库支持ISO C++ 2011标准。此支持目前是实验性的,必须使用-std=c++11或-std=gnu++11编译器选项启用。仅提供更新。我试图在Ubuntu服务器12.04 LTS上编译NS3,手动编译GCC4.7.2 Linaro工具链并启用“-std=c++11x”标志。由此产生的错误数量确实表明NS3仍然与C++11不兼容。