Ubuntu 没有名为'的成员;使#u独一无二';在命名空间中';std&x27;

Ubuntu 没有名为'的成员;使#u独一无二';在命名空间中';std&x27;,ubuntu,c++14,clang++,Ubuntu,C++14,Clang++,我正在使用cmake 3.9.2,我的CMakeLists.txt中有以下几行: set(CMAKE_CXX_STANDARD 14) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -Wall") 我也使用Clang4.0作为我的编译器,我的操作系统是Ubuntu Trusty。在安装clang时,我添加了以下存储库: deb http://apt.llvm.org/trusty/ llvm-toolchain-trusty-4.0 main deb-s

我正在使用cmake 3.9.2,我的CMakeLists.txt中有以下几行:

set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -Wall")
我也使用Clang4.0作为我的编译器,我的操作系统是Ubuntu Trusty。在安装clang时,我添加了以下存储库:

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++

包括
?@RickAstley是的,包括最有可能的是,您的CXX\U标志有问题。我的猜测是,它们链接到C++11(即-std=C++11)而不是C++14(即-std=C++14),其中引入了std::make_unique。@101010我运行了
make VERBOSE=1
,得到了
/usr/bin/clang++-4.0-i/project\u path/。/-g-Wall-stdlib=libstdc++-std=c++14-O3-DNDEBUG-std=gnu++14-m64-o CMakeFiles/../file.cpp
@CaptainRR删除
-std=gnu++14
-o
放错地方