2013-10-21 38 views
1

我想包括矩阵库,我的项目,但是当我包括matrix.h和matrix.hpp这里有错误:initializer_list:没有这样的文件或目录

initializer_list: No such file or directory 
error: tuple: No such file or directory 
error: type_traits: No such file or directory 

线

#include <initializer_list> 
#include <algorithm> 
#include <tuple> 
#include <memory> 
#include <iostream> 
#include <string> 
#include <type_traits> 

让它变得如此。帮助,PLZ。我认为这里有一些标准问题

gcc 4.8;的Mac OS

+4

您的编译器还不支持C++ 11库功能 - 'initializer_list'。更新。 – jrok

+0

它用这个编译另一个程序,包括 – user2897535

+0

然后检查有关如何启用C++ 11的文档。它是哪个编译器? – jrok

回答

3

由于您使用GCC-4.8,你的问题是,你没有C++ 11功能尝试添加-std=c++11到编辑行。

我看到你正在使用的CMake,然后this post可以帮助你(你可以通过-std=c++11-std=gnu++11更换-std=c++0x)。

例子:

# It appends the -std=c++11 option to CMAKE_CXX_FLAGS 
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") # for gcc >= 4.7 

# Or 
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x") # for gcc < 4.7 
+0

我有 'code'SET(CMAKE_CXX_FLAGS“$ {CMAKE_CXX_FLAGS} -O2 -Wno 'unused-value“)'code' 当我将其更改为 'code'SET(CMAKE_CXX_FLAGS”-std = C++ 11 $ {CMAKE_CXX_FLAGS} -O2 -Wno-unused-value“)'code' it answer 'code'无法识别的命令行选项“-std = C++ 11”'code' – user2897535

+0

@ user2897535而你仍然有同样的错误? –

+0

@ user2897535:在旧版本的GCC上,您可能需要'-std = C++ 0x'(而不是'C++ 11');但我会认为4.8会理解'C++ 11'。 –

相关问题