0

Xcode に単純な OpenGL プロジェクトがあります。

4.5 にアップグレードした後、Xcode が奇妙な動作をするようになった

次の行で

#include <fstream.h>

コンパイルが次のエラー メッセージで失敗します: レキシカルまたはプリプロセッサの問題 'fstream.h' ファイルが見つかりません。

Xcode 4.2 で正常にコンパイルするために使用された同じコード

行をに変更する

#include <c++/4.2.1/backward/fstream.h>

問題は修正されますが、他にもいくつかのコンパイル エラーが発生します。

4

1 に答える 1

7

fstream.h は C++ ヘッダーではありません。長いパス名を使用すると、互換性のない別の標準ライブラリ実装 (libstdc++ という名前) にアクセスし、fstream.h という名前の互換性ヘッダーが付けられます (標準化前の C++ との互換性のため。C++ は 14 年以上前に標準化されました)。

Xcode のバージョンはデフォルトで libstdc++ を使用していたため、fstream.h は Xcode 4.2 で動作しましたが、Xcode 4.5 は代わりにデフォルトで libc++ を使用するようになりました。

解決策は、標準の C++ と include を使用すること<fstream>です。

または、これはお勧めしませんが、プロジェクト設定で使用している標準ライブラリの実装を切り替えることができます。

于 2012-10-23T15:25:05.583 に答える