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