【问题标题】:How to fix "fatal error: 'iostream' file not found" after upgrading to Xcode 10.1升级到 Xcode 10.1 后如何修复“致命错误:找不到‘iostream’文件”
【发布时间】:2019-08-20 18:58:27
【问题描述】:

此错误仅在我更新 Xcode(以及 MacOS Mojave 10.14)后出现。 #include <Python> 也发生了类似的事情,我改用 #include "python2.7/Python.h" 来修复它。

Clang doesn't see basic headers 中讨论了类似的错误。当我尝试

clang++ -stdlib=libc++ PyTrans.cpp -o -v

我明白了

ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation).

完整的错误:

warning: include path for stdlibc++ headers not found; pass '-std=libc++' on the command line to use the libc++ standard library instead [-Wstdlibcxx-not-found]

/Users/joe/Documents/Research/EkpPyTransportDist/PyTransport/PyTrans/PyTrans.cpp:20:10: fatal error: 'iostream' file not found include <iostream> ^~~~~~~~~~ 1 warning and 1 error generated. error: command 'gcc' failed with exit status 1

任何帮助将不胜感激;我对 C++ 很陌生。

编辑:括号内的间距。

【问题讨论】:

  • 去掉包含中的空格。让它#include &lt;iostream&gt;它实际上是在寻找一个“iostream”文件,意思是iostream前后都有一个空格。
  • 在 include 指令中包含空格是错误的。

标签: c++ include iostream clang++ xcode10


【解决方案1】:

如果您仔细阅读错误消息,您会看到它显示“在命令行上传递 -std=libc++”。如果你重新阅读你实际写的内容,它会显示-stdlib=libc++。删除多余的lib,它应该可以正常工作。

此外,正如其他人对您的帖子发表的评论一样,您应该删除包含指令中的空格:#include &lt;iostream&gt;

【讨论】:

  • 使用clang++ -stdlib=libc++ PyTrans.cpp -o -v 给出error: invalid value 'libc++' in '-std=libc++',但随后给出了一些建议。我尝试了其中一个clang++ -std=c++17 PyTrans.cpp -o -v,它仍然给出了链接器问题。我确实在括号内做了正确的间距;我在这里发帖时添加了空格,因为“iostream”这个词不会出现。
  • @J.Wraga 啊,对不起。我把这两个标志弄混了。在这种情况下,听起来与您的包含路径有关的事情搞砸了。我会考虑重新安装 XCode 或命令行实用程序。此外,.o 标志本身没有用,尽管我怀疑这与您的错误有关。不幸的是,我不确定我能提供更多帮助:(
猜你喜欢
  • 2021-04-16
  • 2019-06-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-09
  • 2020-02-10
相关资源
最近更新 更多