mingwでopencvを使ったプログラムをコンパイルしたい

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
じゅーん

mingwでopencvを使ったプログラムをコンパイルしたい

#1

投稿記事 by じゅーん » 10年前

今、windowsでopnecvの開発環境を整えたいと思い、以下のページを参考にしてmingwでコンパイルできる環境を作ろうとしています
http://d.hatena.ne.jp/Inuneco/20110714/p1


上のwebページで紹介されていたインストーラーがリンク切れしていたり、色々困ったのですが、http://sourceforge.net/projects/opencvlibrary/代わりに個々からダウンロードしてなんとかやりました


そしていざコンパイルとしようとすると、上記のページにはこのような方法が書かれていました
$ gcc test.c -o test.exe -lcxcore210 -lcv210 -lhighgui210 -lcvaux210 -lml210
今回質問した理由はこのコマンドのせいです。mingwと言えば、windowsようだと思っていたのに、これではlinuxでは無いのでしょうか???
これではもちろんコンパイルできなかったので、windowsのコマンドプロンプトでコンパイルする方法を教えて下さい


また、上記のページとopencvのバージョンの違いのせいか、よく分からない点がいくつかあります
大きくは、
・C:\OpenCV2.1\libなんてディレクトリはない
・includeというディレクトリがたくさんあって、どれを指定すればいいのかわからない

この二点です。こちらも合わせてよろしくお願いします。



(ちなみにコンパイルしようとしているソースはこんなものです)

コード:

#include <cv.h>
#include <highgui.h>

int main () {
	cvNamedWindow ("test", CV_WINDOW_AUTOSIZE);
	cvWaitKey (0);
	cvDestroyWindow ("test");
	return 0;

}
(ちなみにlibファイルを指定せずにコンパイルするとこんなふうになっています)
C:\Users\<USERNAME>\desktop>g++ test.cpp -I C:\opencv\build\include
C:\Users\<USERNAME>\AppData\Local\Temp\ccxaymMo.o:test.cpp:(.text+0x1e): undefined re
ference to `cvNamedWindow'
C:\Users\<USERNAME>\AppData\Local\Temp\ccxaymMo.o:test.cpp:(.text+0x2a): undefined re
ference to `cvWaitKey'
C:\Users\<USERNAME>\AppData\Local\Temp\ccxaymMo.o:test.cpp:(.text+0x36): undefined re
ference to `cvDestroyWindow'
collect2: ld ヘXe[^X 1 ナIケオワオス


よろしくお願いします

じゅーん

Re: mingwでopencvを使ったプログラムをコンパイルしたい

#2

投稿記事 by じゅーん » 10年前

追記です
C:\Users\<USERNAME>\desktop>g++ test.cpp -I C:\opencv\build\include c:\opencv\build\x86\mingw\lib\libopencv_core246.dll.a C:\opencv\build\x86\mingw\lib\libopencv_highgui246.dll.a
こうやって書くと問題なくコンパイルが通りました!なんということでしょう。
ただ、絶対パスを一々指定しなければ、no such file or directoryとかいうよく見るエラーを吐いてきます。
こいつを何とかするためにgccにライブラリのパスを教えておいてやりたいのですが、どうすればいいのでしょうか?

beatle
記事: 1281
登録日時: 12年前
住所: 埼玉
連絡を取る:

Re: mingwでopencvを使ったプログラムをコンパイルしたい

#3

投稿記事 by beatle » 10年前

じゅーん さんが書きました:そしていざコンパイルとしようとすると、上記のページにはこのような方法が書かれていました
$ gcc test.c -o test.exe -lcxcore210 -lcv210 -lhighgui210 -lcvaux210 -lml210
今回質問した理由はこのコマンドのせいです。mingwと言えば、windowsようだと思っていたのに、これではlinuxでは無いのでしょうか???
MinGWはLinuxぽい環境をWindows上に構築するソフトウェアですので、Linuxぽくて正常なのですが…

gccにライブラリディレクトリを教える方法ですが、-Lオプションを試してみたらいかがでしょうか。

アバター
みけCAT
記事: 6734
登録日時: 13年前
住所: 千葉県
連絡を取る:

Re: mingwでopencvを使ったプログラムをコンパイルしたい

#4

投稿記事 by みけCAT » 10年前

"C:\OpenCV2.1\lib"の代わりに、"c:\opencv\build\x86\mingw\lib"をLIBRARY_PATHに追加すればいいのではないでしょうか?
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

じゅーん

Re: mingwでopencvを使ったプログラムをコンパイルしたい

#5

投稿記事 by じゅーん » 10年前

返信が一日遅れてしまい、申し訳ありません

>beatleさん
beatle さんが書きました:
じゅーん さんが書きました:そしていざコンパイルとしようとすると、上記のページにはこのような方法が書かれていました
$ gcc test.c -o test.exe -lcxcore210 -lcv210 -lhighgui210 -lcvaux210 -lml210
今回質問した理由はこのコマンドのせいです。mingwと言えば、windowsようだと思っていたのに、これではlinuxでは無いのでしょうか???
MinGWはLinuxぽい環境をWindows上に構築するソフトウェアですので、Linuxぽくて正常なのですが…

gccにライブラリディレクトリを教える方法ですが、-Lオプションを試してみたらいかがでしょうか。
Linuxっぽいものなのですか?どうやら私の勉強不足のようで‥‥
また-Lオプションも特に効いてくれませんでした


>みけCATさん
みけCAT さんが書きました:"C:\OpenCV2.1\lib"の代わりに、"c:\opencv\build\x86\mingw\lib"をLIBRARY_PATHに追加すればいいのではないでしょうか?
追加して再起動も試しましたが、うまくいきませんでした


どうにも私の勉強不足が原因のようです、もうちょっと勉強してこようと思います
一応コンパイルは通ったので、このトピックはこれで解決にさせていただきます
回答してくださってどうもありがとうございました

閉鎖

“C言語何でも質問掲示板” へ戻る