Xcode 11.1:找不到 iostream 文件

新手上路,请多包涵

我刚刚将我的 MacBook Pro 更新到 macOS Catalina 10.15 ,并尝试编译和运行 C++ 命令行程序,但我遇到了以前版本中不存在的问题;

这只是代码:

 #include <iostream>
using namespace std;

int main()
{
    cout << "Hello, World!\n";
    return 0;
}

代码编译并输出预期,但 Xcode 仍然说:

 fatal error: 'iostream' file not found

我尝试将 Build Settings/C++ Standard Library 更改为 libstdc++ ,但警告说:

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

并且仍然存在相同的 iostream 错误。

原文由 aboqasem 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.9k
1 个回答

我正在从命令行编译,这里(或其他地方)列出的答案都不适合我。

似乎有效的方法(到目前为止)是将以下内容添加到 .profile 或您的终端用于启动的任何脚本:(zsh、csh、bash 等)

 export C_INCLUDE_PATH=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/usr/include
export CPLUS_INCLUDE_PATH=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/usr/include

每当您升级操作系统时,您可能必须更改 MacOSX10.15.sdk

C_INCLUDE_PATHCPLUS_INCLUDE_PATH 是 clang 工具链而不是 MacOS 环境的选项,所以希望这个解决方案能够长期工作,不像 xcode-select --install (不会修复)升级时的包含目录)或 ln -s ... /usr/include (现在被系统完整性保护禁止)。

原文由 John Perry 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题