Xcode 11.1:找不到iostream'文件

时间:2019-10-13 14:52:44

标签: c++ xcode iostream clang++ macos-catalina

我刚刚将 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

我尝试将内部设置/ C ++标准库更改为 libstdc ++ ,但警告提示:

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

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

7 个答案:

答案 0 :(得分: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(现在系统完整性保护已禁止)。

答案 1 :(得分:0)

因此,我重新启动了笔记本电脑,现在一切似乎都很好,感谢那些尝试提供帮助的人。

答案 2 :(得分:0)

我有同样的问题,代码可以编译并正常运行,但是XCode一直说找不到iostream。错误似乎是随机出现的,因此重新启动只是一个临时解决方案。

答案 3 :(得分:0)

就我而言,它甚至无法编译,在阅读@Alan Birtles注释后,我将其更改为默认值,并且可以正常工作

答案 4 :(得分:0)

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); TrackingNo = findViewById(R.id.TrackingNoTxt); ConnectionStatus = findViewById(R.id.connectionStatTxt); ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CAMERA}, PackageManager.PERMISSION_GRANTED); StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); StrictMode.setThreadPolicy(policy); try { Class.forName(Classes); connection = DriverManager.getConnection(url, username, password); ConnectionStatus.setText("Connection Established!"); } catch (ClassNotFoundException | SQLException e) { e.printStackTrace(); ConnectionStatus.setText("Error connecting to the server. Please check your connection!"); } } 在Xcode的构建和编译时间内不正确,

libstdc++适用于iPhone运行时


来自@Alan Birtles推荐的答案

libstdc++的支持已从iOS 12.0 Simulator运行时中删除,但 它保留在iOS 12.0(设备)运行时中,以实现二进制兼容性 带有运输应用程序。


libstdc++文件中声明时遇到了这个问题。

.hpp

确定

#include <iostream>
#include <string>

答案 5 :(得分:0)

我遇到了同样的问题,并使用以下youtube视频对其进行了修复。 https://www.youtube.com/watch?v=hrPm7tWC-BI&feature=youtu.be

,否则您可以遵循此路径。确保包含引号

项目-构建设置-搜索路径-标头搜索路径,并添加以下路径: “ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c ++ / v1 /”

答案 6 :(得分:-1)

我尝试使用Xcode重新安装Catalina。我将您的代码复制并粘贴到“ test.cpp”中,然后运行:

clang ++ test.cpp

与Terminal中“ test.cpp”文件位于同一目录中。结果是运行时的“ a.out”文件:

./ a.out

输出所需的“ Hello,World!”结果。希望这有一定用处(作为参考)。