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