プロが教える店舗&オフィスのセキュリティ対策術

プログラムの処理時間をマイクロ単位で計算したいので,gettimeofday関数を使いたいんですが,<sys/time.h>をインクルードするときに以下のエラー文が出力されてコンパイルできずに困っています.

/usr/include/sys/time.h:57: error: redefinition of `struct timezone'
/usr/include/sys/time.h:94: error: ハクヒ。・ィ・鬘シ before numeric constant
/usr/include/sys/time.h:108: error: redefinition of `struct itimerval'

対処の仕方を教えていただけないでしょうか.
よろしくお願いします.

A 回答 (5件)

誰が定義しているかわからないと進まないので -E を付けてプリプロセスの結果を見る.

    • good
    • 1

構造体の再定義のエラーですので「#include <sys/time.h>」の前にincludeされているものがあれば参考までに提示していただけないでしょうか。

複数includeされているのであれば,「#include <sys/time.h>」を一番上に移動して見て下さい。エラー表示が変わったら添付願います。

この回答への補足

#include<sys/time.h>の前に自作のヘッダを複数includeしていたので,#include<sys/time.h>を一番上に移動してみたのですが,エラー表示は変わりませんでした.<sys/time.h>が壊れてるんでしょうか^^;?

追記:コンパイラはgccです.またエラー文の文字化けしている「ハクヒ。・ィ・鬘シ」は「文法エラー」です.遅くなってしまってすいません.

補足日時:2009/08/21 12:36
    • good
    • 0

>これをコメントアウトすればエラーは消えます.



エラーが消えた結果、コンパイルはできたのですか?

>ソースというのは,プログラミングの文章

コンパイルする元となった、あなたがエディタなどで書いた
コードのことです。
ソース(source)とは、「源、根源」という意味を持ちます。

この回答への補足

>エラーが消えた結果、コンパイルはできたのですか?

はい。できます。
ですが<sys/time.h>をインクルードして、gettimeofdayを使いたいのでこのエラーを回避する対処方法を探しています。
よろしくお願いします。

補足日時:2009/08/20 21:16
    • good
    • 0

#1 に加えて使っている処理系 (OS やコンパイラ) も示してください.

この回答への補足

そうでした,すいません^^;
OSはrtlinuxで,コンパイラはちょっとわからないです.
わかり次第追記します.

補足日時:2009/08/20 18:49
    • good
    • 0

><sys/time.h>をインクルードするとき



その前後で、どういうソースを書かれていますか?
「こんなソースを書いた」という前提がなくて
「こんなエラーが出た」という結論だけ書かれましても、
なかなか原因がつかめないのです。

この回答への補足

ソースというのは,プログラミングの文章のことでいいんですかね?
文章としては,

#include<sys/time.h>

を文章に追加すると先程のエラー文が出てコンパイルできなくなってしまいます.
これをコメントアウトすればエラーは消えます.

補足日時:2009/08/20 18:52
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています