- ベストアンサー
timeGetTime関数を使用できません
- みんなの回答 (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 このコンパイルオプションでやってみましたが、同じエラーがでてしまいました・・・
関連するQ&A
- Windowsコモンコントロールのcygwin/gccコンパイルエラー
以下のサイトのようなWindowsコモンコントロールのプログラムをcygwin/gccコンパイルするとエラーがでます。 (sourceのサイト) http://wisdom.sakura.ne.jp/system/winapi/common/common16.html (ビルドコマンド) gcc -mwindows -mno-cygwin -o main.exe main.cpp (エラー出力) undefined reference to `_ImageList_Destroy@4' undefined reference to `_InitCommonControls@0' undefined reference to `_ImageList_Create@20' undefined reference to `_ImageList_ReplaceIcon@12' undefined reference to `_ImageList_ReplaceIcon@12' collect2: ld returned 1 exit status make: *** [main.exe] Error 1 Windowsコモンコントロールを含んだプログラムをcygwin/gccコンパイルするにはどうすればよいでしょうか? コンパイルは出来ないのでしょうか? よろしくお願いします。
- ベストアンサー
- C・C++・C#
- コンパイル時のエラー
UNIXでサーバー、クライアントのCプログラミングをテキストどおりに書いてコンパイルしたのですが、以下のエラーが出ます。gcc, ccでコンパイルすると以下のようになるのですが、これはどういうことなのでしょうか?何が原因なのでしょうか?よろしくお願いいたします。 gcc unix_server.c /var/tmp/ccvpay1f1.o: In function `main': /var/tmp/ccvpay1f1.o(.text+0x8c): undefined reference to `socket' /var/tmp/ccvpay1f1.o(.text+0x104): undefined reference to `unllnk' /var/tmp/ccvpay1f1.o(.text+0x118): undefined reference to `bind' /var/tmp/ccvpay1f1.o(.text+0x150): undefined reference to `listen' /var/tmp/ccvpay1f1.o(.text+0x1a8): undefined reference to `accept' cc unix_server.c ld: /usr/lib/cmplrs/cc/crtn.o: Error: Unresolved: rindex socket bzero bcopy unllnk bind listen accept
- ベストアンサー
- C・C++・C#
- cygwin gcc c99 での isnormal と strtold の使用
Cygwinのgccで-std=c99オプションを付けて 以下のコードをコンパイルしようとしています。 #include <stdlib.h> #include <math.h> int main() { isnormal(0.123); strtold("0.123", NULL); return 0 ; } $> gcc -std=c99 test_strtold.c ですが、コンパイルできず、2つの関数とも'undefined reference'になります。 -std=c99を付けてコンパイルする方法または この記述と同等の別の記述がありましたらご教授願います。 よろしくお願いいたします。
- 締切済み
- C・C++・C#
- C++の関数をfortranから呼びたい。(g++, g77)
C++の関数をfortranから呼びたい。(g++, g77) いつもお世話になっています。 現在WindowsXPにMinGWというソフトを入れて C++のコンパイルはg++を Fortranのコンパイルはg77を 使用しています。 (いずれも動作は確認できています。) 現在、以下のようなソースを使用して fortranからC++関数を呼ぼうとしていますが できておりません。 ソース内容、コンパイル方法に問題があれば ご指摘頂きたくお願いします。 ■C++ソース #include <stdio.h> #include <iostream> extern "C" void funcHelloC_(); void funcHelloC_(void) { printf("hello C world!\n"); } ■fortranソース write(*,*) "Hello Fortran World." call funcHelloC() end ※実際のソースの各文先頭には、半角スペース6つ分が 記述しています。 ■コンパイル手順 D:\C>g++ -c funcHelloC.cpp D:\C>g77 -c helloFortran.f D:\C>g77 helloFortran.o funcHelloC.o helloFortran.o(.text+0x51):helloFortran.f: undefined reference to `funchelloc_' funcHelloC.o(.text+0xd):funcHelloC.cpp: undefined reference to `_ZNKSs4sizeEv' funcHelloC.o(.text+0x60):funcHelloC.cpp: undefined reference to `_ZNKSsixEj' funcHelloC.o(.text+0x9e):funcHelloC.cpp: undefined reference to `_ZNKSsixEj' funcHelloC.o(.text+0xcc):funcHelloC.cpp: undefined reference to `_ZNKSsixEj' funcHelloC.o(.text+0x12f):funcHelloC.cpp: undefined reference to `_ZNSt8ios_base4InitC1Ev' funcHelloC.o(.text+0x14a):funcHelloC.cpp: undefined reference to `_ZNSt8ios_base4InitD1Ev'
- ベストアンサー
- C・C++・C#
- crypt関数を含むプログラムソースのgccを用いたコンパイルについて(C言語)
crypt関数を含むCのプログラムソースをgccを用いてコンパイルしようとしたところ、 /cygdrive/c/DOCUME~1/○○○/LOCALS~1/Temp/ccGF0SZX.o:trip.c:(.text+0x373): undefined reference to `_crypt' collect2: ld returned 1 exit status と出てコンパイルできませんでした。 最初はcygwinのインストールの時に何かが足りていなかったのだろうと思い、すべてインストールしなおしたのですがそれでもやはりだめでした。 http://www.ninnin.net/blog/archives/000508.html に、gccなら問題なく使えると書いてあったのですが2005年の記事なので今はもう使用できなくなってしまったのでしょうか? どうかご教授お願いします。
- ベストアンサー
- C・C++・C#
- res_queryについて
Ubuntu 8.10において、 res_query関数でAレコードを引くCプログラムを書きました。 しかし、gccでコンパイルすると undefined reference to `__res_query' というエラーメッセージがでます。 ちなみにres_initは値を返します。 解決方法を教えてください。 よろしくお願いします。
- ベストアンサー
- C・C++・C#
- cygwin gccでの_WinMain@16
WinXP SP2上でcygwinを用いてプログラミングをしています。 QNo.580169 にもあったのですが、undefined reference to `_WinMain@16` で困っています。 二つのソースファイルをそれぞれコンパイルして、それをリンクさせて実行ファイルを作ろうと思っているのですが、main関数が書かれていないソースファイルをコンパイルしようとすると上のメッセージが出ます。どのようにして回避できるでしょうか。 教えてください。
- ベストアンサー
- C・C++・C#
- gcc使用時のエラー
現在openCVで画像処理プログラミングを行おうとしております。 一通りコーディングが終わった所でgccを使用してコンパイルをかけた所、 下記のようなエラーが出ました。 (コード中でhighgui.h及びcv.hをインクルードしています。) /tmp/cch6hMvI.o: In function `cvDecRefData': test.c:(.text+0xaa6): undefined reference to `cvFree_' test.c:(.text+0xb2e): undefined reference to `cvFree_' これはライブラリへのパスが通っていないものと思い、端末から export LD_LIBRARY_PATH=/usr/local/lib/ としましたが、それでもエラーが出ます。さらに下記も試してみましたが同様です。 gcc -L/usr/local/lib -o test test.c (/usr/local/lib/以下にlibopencv_core.so.2.4等が置いてあります。) pkg-configを使用すればコンパイルは通るのですが、 何がどうなってエラーになっているのかイマイチ分からず気持ちが悪いです。 1、上記エラーは共有ライブラリへのパスが通っていないために起きているものですか? 2、そうだとすれば、-Lやexport LD_LIBRARY_PATHで解決出来ないのは何故でしょう? 上記だけで情報が不足している場合は提示致しますので、 どうぞよろしくお願い致します。
- ベストアンサー
- C・C++・C#
- LinuxのgccのLIBパス? (類似質問)
Linuxのgccで、LIBのパスを設定する方法が知りたいのですが、gccについて詳しい書籍やサイトがありましたら、教えてください。 例)gcc -I/usr/local/example/include test.c /tmp/ccOFpCBo.o(.text+0x26): In function `main': : undefined reference to `EXAMPLE_1' /tmp/ccOFpCBo.o(.text+0x37): In function `main': : undefined reference to `EXAMPLE_2' /tmp/ccOFpCBo.o(.text+0x48): In function `main': : undefined reference to `EXAMPLE_3' collect2: ld はステータス1で終了しました。 また、ldとはVC6++でいう LINKのことでしょうか?
- ベストアンサー
- Linux系OS
- CygwinからVisual C++へ
Cygwinでコンパイルしていたプログラムを、 Visual C++の cl コマンドでコンパイルしたいです。 あるプログラムを書きまして、Cygwinをインストールし、 [block.rc] BLOCKS BITMAP "block.bmp" という内容のリソースファイルを作成して、 windres block.rc -o block.o gcc -mwindows aaa.cpp block.o でちゃんとコンパイルできていました。 上記のように Visual Studio 2010 のVisual C++でコンパイルするにはどうしたらいいのかわかりません。 cl aaa.cpp block.o とやっても cl -mwindows aaa.cpp block.o とやっても、コンパイルできませんでした。 -mwindowsに代わるclコマンドのオプションを探してはみてみたものの、 -GA windowsアプリケーション用の最適化を行う というものを見つけたのでやってみましたがだめでした。 どなたか、コンパイルのアドバイスを下さい。
- 締切済み
- C・C++・C#
お礼
gcc -mwindows -o win win.c -lwinmm でコンパイルして使うことが出来ました! 皆様どうもありがとうございました。