dポイントプレゼントキャンペーン実施中!

お世話になります。
今windowsプログラミングを制作しているのですが、タイトルの通りtimeGetTime関数がコンパイルで弾かれてしまいます。

エラー内容:
undefined reference to`_timeGetTime@0'
コンパイル方法:
gcc -mwindows -o win win.c

コンパイルオプションが原因かと思い調べてみたのですがそれらしいオプションが見当たりませんでした。

原因が分かる方がいましたら、いつでもいいのでご指導お願いします。

A 回答 (5件)

gccで-lの位置は重要です


あるファイルのシンボルは後ろのファイルから探します
gcc -mwindows -lwinmm -o win win.c
はだめでも
gcc -mwindows -o win win.c -lwinmm
でいけるかもしれません
    • good
    • 0
この回答へのお礼

gcc -mwindows -o win win.c -lwinmm
でコンパイルして使うことが出来ました!

皆様どうもありがとうございました。

お礼日時:2008/11/19 21:55

> どこか勉強するのにいいサイトはありませんでしょうか?



サイトというより、manまたはinfoでドキュメントを読んでください。
bash上で

man gcc

または

info gcc

とすれば表示されます。
    • good
    • 0
この回答へのお礼

なるほど、その発想はありませんでした。

皆様、いろいろとありがとうございました。

お礼日時:2008/11/21 12:01

#1です。



すでに回答が出ているように、-lwinmmの位置が重要です。win.cより後に書くようにしてください。
なお、winmm.libをいくら探しても見つかりません。
/lib/w32api/libwinmm.a
が該当するファイルです。
    • good
    • 1
この回答へのお礼

何度もありがとうございます。
-lwinmmを後ろにつけることで解決することが出来ました。

重ねて質問して申し訳ないのですが、皆様はコンパイルオプションはある程度勉強して覚えているのでしょうか?
コンパイルで引っかかる度に質問するのは失礼なので勉強しようと思っているのですが、どこか勉強するのにいいサイトはありませんでしょうか?

早く皆さんのようになりたいので頑張ります。

お礼日時:2008/11/19 22:03

 とりあえずあなたのパソコンの中でwinmm.libがどこにあるのか調べてみてください。

winmm.libがライブラリ検索パスに入っていればANo.1の方の指摘で問題ないです。

 今、私のパソコンにはC#2005ExpとVB2005しか入っていないのでC++的なインポートライブラリが一般的にどこに置かれるのか調べる事ができませんでしたが、gccよりもclあたりを使った方が良いような気がしなくもないです。
    • good
    • 0
この回答へのお礼

問題が解決しました、お騒がせして申し訳ないです。
clというのも調べてみようと思います。

お礼日時:2008/11/19 21:58

-lwinmmを付ければ解決するのでは?

この回答への補足

お早いご返事ありがとうございます。

gcc -mwindows -lwinmm -o win win.c

このコンパイルオプションでやってみましたが、同じエラーがでてしまいました・・・

補足日時:2008/11/19 00:38
    • good
    • 0

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