1

これは私を狂わせています、私はこの問題に数時間立ち往生しています。プロジェクトのいくつかのファイルでtime.hを使用していますが、関数time()を使用しようとすると、すべてのファイルで「timeはスコープ内で宣言されていません」というエラーが発生します。奇妙なことに、time_tが定義されていますが、エラーは発生しません。どういうわけかC++バージョンをプルしているのではないかと思ったので、名前空間std ::を使用してみましたが、それも機能しませんでした。structtmとlocaltimeもスコープ内で宣言されていません。ところで、すべてのコードは他のシステムで正常にコンパイルされます。

ここでおかしくなりますが、ファイルが使用しているヘッダー、定義されているもの、または何が起こっているのかをどのように把握できますか?進め方がわかりません、助けてください!

Xcode3.2.5で10.6SDKを使用してGCC4.2を使用しています

ここでコードを見たい場合、それは役に立ちませんが、コンパイラ/インクルードファイルの問題である必要があると思います。

            time_t long_time;
            time(&long_time);
            tm* st = localtime(&long_time);
            sprintf(temp, "%02d:%02d:%02d %02d.%02d.%04d  ",
                    st->tm_hour, st->tm_min, st->tm_sec, st->tm_mon+1, st->tm_mday, st->tm_year+1900);
4

1 に答える 1

0

問題が見つかりました。xcodeがサブディレクトリの下にenetファイルを見つけることができなかったため、time.hというヘッダーを持つenetを使用しています。これは、ユーザーヘッダー検索パスに含まれているようです。明らかに、コンパイラは最初にユーザーパスを調べ、enetをプルしていましたシステムのものの代わりに time.h

于 2013-04-08T17:44:07.880 に答える