【问题标题】:Xcode 4.2 + c++0x/libc++ cannot find iostreamXcode 4.2 + c++0x/libc++ 找不到 iostream
【发布时间】:2011-08-02 14:24:33
【问题描述】:

我使用的是 Macbook 1g,Snow Leopard。

几天前我安装了 xcode 4.2 并为 c++0x 做了一个测试项目。

我将 LLVM 3.0 设置为 c++ 编译器,将 C++ 语言方言设置为 C++0x,将 C++ 标准库设置为 libc++。

但是在构建的时候,发生了错误。

"iostream" file not found

我觉得它最令人困惑。我该如何解决这个问题?

【问题讨论】:

  • 如果你点击“运行”按钮,它会编译并运行吗?
  • 哦,我找到了。 libc++ 作为标准库需要 OS X Lion! (...) 我将 libc++ 更改为 libstdc++ 并成功编译。
  • 我不知道如何在 Xcode 下运行,但如果你想在 Snow Leopard 上使用命令行界面尝试 clang+libc++,你可以尝试在 libcxx.llvm.org 上的“get it”指导。
  • @Prin_E 祝贺您解决了这个问题。请将此作为答案发布并接受以标记问题已解决。

标签: xcode osx-snow-leopard c++11 llvm libc++


【解决方案1】:

“我将 libc++ 更改为 libstdc++”。如何?这个设置在哪里? Apple 文档说“只需在构建设置中将“C++ 标准库类型”设置为……”构建设置很长,我看不到设置的地方。谢谢。

编辑 - 没有什么比打盹更能让头脑清醒的了。

确保实现文件的文件名后缀为“.mm”。

Project->Build Settings->Apple LLVM compiler 3.1-Language-> 然后: C++ 语言方言->C++11(或任何选项) C++标准库->libstdc++

别忘了最后一个! 编译源码为->Objective-C++

【讨论】:

  • 确保将Compiler for C/C++/Objective-C选项设置为Apple LLVM Compiler 3.x,否则上面列出的选项将不会出现。也就是说,有谁知道为什么 Apple LLVM 编译器是唯一一个可以指定 C++ 标准库的编译器?
【解决方案2】:

来自cmets:

哦,我找到了。 libc++ 作为标准库需要 OS X Lion! (...) 我将 libc++ 更改为 libstdc++ 并成功编译。

【讨论】:

  • 这可能意味着我不能在 leopard 上使用 c++0x?如果我这样做,我不能包含#include
  • 只需将编译器更改为 Apple LLVM 并根据此线程中的其他答案设置标准库。
  • 另见User-Defined -> CLANG_XX_LIBRARY
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-02-10
  • 1970-01-01
  • 2011-12-14
  • 2020-02-02
  • 2013-01-28
  • 1970-01-01
  • 2021-04-16
相关资源
最近更新 更多