没有名为命名空间“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上做错了什么?
答
看来我解决了这个问题。我需要安装libc++-dev
并确保-stdlib=libc++
在命令行中。
included''? –
@RickAstley是的,它包含在内 – CaptainRR
你的CXX_FLAGS最可能出现问题。我的猜测是它们链接到C++ 11(即-std = C++ 11),而不是C++ 14(即-std = C++ 14),其中引入了std :: make_unique。 – 101010