Mac C ++编译器找不到<tr1 / unordered_map>

质量控制

我想今天的问题是Mac上默认的“哪个” C ++编译器?

如果我这样做,xcrun -find c++它说是在/Applications/Xcode.app/etc...

当我在Xcode目录中搜索时tr1/unordered_map,它就在那里。

所以我很困惑。为什么会出现这样的生成错误fatal error: 'tr1/unordered_map' file not found

布伦丹·尚克斯(Brendan Shanks)

简短的答案:使用调用clang ++ -stdlib=libstdc++tr1标题就在那里。

长答案:错误的原因以及2套C ++的原因是macOS / Xcode具有两个可以构建的不同C ++标准库:一个旧的GNUlibstdc++和一个新的和现代的LLVM libc++

随着MacOS的10.12塞拉利昂的,默认的是现在libc++libstdc++已经过时了。libstdc++v4.2.1相当老,并且早于C ++ 11(因此tr1标头)。如果您要长期使用此代码,则值得花时间使其至少符合C ++ 11(例如#include <unordered_map>

更新:Xcode 10不再允许针对libstdc ++进行构建。更新您的代码库以使用标准的C ++ 11标头,或者如果确实没有选择,请使用Xcode 9。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

配置:错误:在$ PATH中找不到可接受的C编译器

为什么配置说在安装GCC时找不到C编译器?

安装C编译器时,在$ PATH中找不到可接受的C编译器

CMake找不到Visual C ++编译器

遍历unordered_map C ++

C ++中的unordered_map :: emplace和unordered_map :: ins有什么区别?

在Mac上编译x264:“找不到可用的C编译器”和“ arm-linux-androideabi-gcc:未找到命令”

单个对象上的C ++ unordered_map迭代器

如何在C ++中清除unordered_map的unordered_map?

“ thrift -gen cpp”生成的代码无法在macOS上编译:找不到“ boost / tr1 / functional.hpp”文件

Dymola Python界面中找不到C编译器

从C ++中的unordered_map访问值

Windows 10中Omnet ++中的安装错误,找不到C编译器

c ++获取unordered_map向量的unordered_map值

unordered_map的unordered_map与对C ++的自定义哈希函数?

在Mac OS X上使用C ++ 11 unordered_map类型

C ++ unordered_map的问题

在$ PATH中找不到可接受的C编译器

为什么在C ++ 11和TR1之间切换的此预处理器宏不起作用?

使用TR1进行基本字典查找的C ++

一对值的unordered_map C ++

Android Native Developmenet:找不到C编译器

使用Xcode 7.3.1编译时找不到“ unordered_map”文件错误

C ++-结构的unordered_map内存问题

如何在 Mac OS 上使用 TR1 编译 C++

STL unordered_map 编译错误

如何在c ++中遍历unordered_map的unordered_map的unordered_map

Emscripten:致命错误:找不到“tr1/unordered_map”文件

编译器在编译时找不到重载的 operator<<。C++