我刚刚将我的 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 许可协议
我正在从命令行编译,这里(或其他地方)列出的答案都不适合我。
似乎有效的方法(到目前为止)是将以下内容添加到
.profile
或您的终端用于启动的任何脚本:(zsh、csh、bash 等)每当您升级操作系统时,您可能必须更改
MacOSX10.15.sdk
。C_INCLUDE_PATH
和CPLUS_INCLUDE_PATH
是 clang 工具链而不是 MacOS 环境的选项,所以希望这个解决方案能够长期工作,不像xcode-select --install
(不会修复)升级时的包含目录)或ln -s ... /usr/include
(现在被系统完整性保护禁止)。