我刚刚将 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错误仍然存在。
答案 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_PATH
和CPLUS_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!”结果。希望这有一定用处(作为参考)。