没有名为命名空间“STD” make_unique'

问题描述:

我使用cmake 3.9.2和我在我的CMakeLists.txt以下行成员:没有名为命名空间“STD” make_unique'

set(CMAKE_CXX_STANDARD 14) 
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -Wall") 

我还使用铛4.0作为我的编译器,我的操作系统是Ubuntu Trusty。当我安装铛添加以下库:

deb http://apt.llvm.org/trusty/ llvm-toolchain-trusty-4.0 main 
deb-src http://apt.llvm.org/trusty/ llvm-toolchain-trusty-4.0 main 
ppa:ubuntu-toolchain-r/test 

,并运行命令:

# apt-get install clang-4.0 libstdc++6 libc++1 

而且毕竟我仍然得到错误

error: no member named 'make_unique' in namespace 'std' 

在同一时间在我的OS X 10.11的一切构建和运行顺利。在Ubuntu Zesty上我也没有任何问题。我在Ubuntu Trusty上做错了什么?

+1

included''? –

+0

@RickAstley是的,它包含在内 – CaptainRR

+0

你的CXX_FLAGS最可能出现问题。我的猜测是它们链接到C++ 11(即-std = C++ 11),而不是C++ 14(即-std = C++ 14),其中引入了std :: make_unique。 – 101010

看来我解决了这个问题。我需要安装libc++-dev并确保-stdlib=libc++在命令行中。