<分区>
我在 Xcode 中有一个简单的 OpenGL 项目。
升级到 4.5 后,Xcode 开始出现奇怪的行为
在下一行
#include <fstream.h>
编译失败并出现以下错误消息:找不到词法或预处理器问题“fstream.h”文件。
同样的代码在Xcode 4.2中编译成功
将行更改为
#include <c++/4.2.1/backward/fstream.h>
修复了问题,但产生了其他几个编译错误。
<分区>
我在 Xcode 中有一个简单的 OpenGL 项目。
升级到 4.5 后,Xcode 开始出现奇怪的行为
在下一行
#include <fstream.h>
编译失败并出现以下错误消息:找不到词法或预处理器问题“fstream.h”文件。
同样的代码在Xcode 4.2中编译成功
将行更改为
#include <c++/4.2.1/backward/fstream.h>
修复了问题,但产生了其他几个编译错误。
最佳答案
fstream.h 不是 C++ 头文件。当您使用较长的路径名时,您正在访问一个不同的、不兼容的标准库实现(名为 libstdc++),它有一个名为 fstream.h 的兼容性 header (为了与准标准 C++ 兼容;C++ 在 14 年前就已标准化)。
fstream.h 与 Xcode 4.2 一起工作,因为该版本的 Xcode 默认使用 libstdc++,但 Xcode 4.5 已改为默认使用 libc++。
解决方案是使用标准 C++ 并包含 <fstream>
.
或者,我不推荐这样做,您可以切换您在项目设置中使用的标准库实现。
关于c++ - Xcode 4.5 问题与简单的 OpenGL C++ 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13033596/