Ubuntu 没有名为'的成员;使#u独一无二';在命名空间中';std&x27;
我正在使用cmake 3.9.2,我的CMakeLists.txt中有以下几行: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
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
放错地方