- ベストアンサー
timeGetTime関数を使用できません
お世話になります。 今windowsプログラミングを制作しているのですが、タイトルの通りtimeGetTime関数がコンパイルで弾かれてしまいます。 エラー内容: undefined reference to`_timeGetTime@0' コンパイル方法: gcc -mwindows -o win win.c コンパイルオプションが原因かと思い調べてみたのですがそれらしいオプションが見当たりませんでした。 原因が分かる方がいましたら、いつでもいいのでご指導お願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
gccで-lの位置は重要です あるファイルのシンボルは後ろのファイルから探します gcc -mwindows -lwinmm -o win win.c はだめでも gcc -mwindows -o win win.c -lwinmm でいけるかもしれません
その他の回答 (4)
- jacta
- ベストアンサー率26% (845/3158)
> どこか勉強するのにいいサイトはありませんでしょうか? サイトというより、manまたはinfoでドキュメントを読んでください。 bash上で man gcc または info gcc とすれば表示されます。
お礼
なるほど、その発想はありませんでした。 皆様、いろいろとありがとうございました。
- jacta
- ベストアンサー率26% (845/3158)
#1です。 すでに回答が出ているように、-lwinmmの位置が重要です。win.cより後に書くようにしてください。 なお、winmm.libをいくら探しても見つかりません。 /lib/w32api/libwinmm.a が該当するファイルです。
お礼
何度もありがとうございます。 -lwinmmを後ろにつけることで解決することが出来ました。 重ねて質問して申し訳ないのですが、皆様はコンパイルオプションはある程度勉強して覚えているのでしょうか? コンパイルで引っかかる度に質問するのは失礼なので勉強しようと思っているのですが、どこか勉強するのにいいサイトはありませんでしょうか? 早く皆さんのようになりたいので頑張ります。
- anmochi
- ベストアンサー率65% (1332/2045)
とりあえずあなたのパソコンの中でwinmm.libがどこにあるのか調べてみてください。winmm.libがライブラリ検索パスに入っていればANo.1の方の指摘で問題ないです。 今、私のパソコンにはC#2005ExpとVB2005しか入っていないのでC++的なインポートライブラリが一般的にどこに置かれるのか調べる事ができませんでしたが、gccよりもclあたりを使った方が良いような気がしなくもないです。
お礼
問題が解決しました、お騒がせして申し訳ないです。 clというのも調べてみようと思います。
- jacta
- ベストアンサー率26% (845/3158)
-lwinmmを付ければ解決するのでは?
補足
お早いご返事ありがとうございます。 gcc -mwindows -lwinmm -o win win.c このコンパイルオプションでやってみましたが、同じエラーがでてしまいました・・・
お礼
gcc -mwindows -o win win.c -lwinmm でコンパイルして使うことが出来ました! 皆様どうもありがとうございました。