• ベストアンサー

OpenCVを使ったプログラムのコンパイル

OpenCVを使ったプログラムtest.cppを cygwin上でコンパイルしようと思いネットで調べたら 下記のように入力すればよいとのことで, 実際,下記のように入力すればコンパイルできました. g++ -I/usr/local/include/opencv test.cpp -lcxcore -lcv -lhighgui -lcvaux -lml -o test 一度入力すれば2度目以降は「↑」キーを押すことで 過去に入力したコマンドを出せるので楽にコンパイルできるのですが, cygwinを立ち上げ直した際にはもう一度入力しなければなりません. 複雑な記述が必要なコンパイルを 楽に行う方法はないでしょうか?

  • vjpo
  • お礼率23% (17/71)

質問者が選んだベストアンサー

  • ベストアンサー
  • php504
  • ベストアンサー率42% (926/2160)
回答No.2

makefileというファイルを作って test: test.cpp [TAB]g++ -I/usr/local/include/opencv test.cpp -lcxcore -lcv -lhighgui -lcvaux -lml -o test htmlだとタブが消えちゃうので[TAB]で置き換えてあります 普通の空白スペースだとエラーになるので必ず先頭にタブを入れてください /bin/make.exe が無いときはcygwin setup.exeで追加しましょう

vjpo
質問者

お礼

ありがとうございます!! 解決しました!!できました!!

その他の回答 (1)

  • chie65535
  • ベストアンサー率43% (8508/19344)
回答No.1

makefileを用意してmakeコマンド一発で済ますのが普通。

vjpo
質問者

お礼

ありがとうございます!!

関連するQ&A

  • OpenGLがコンパイルできません。

    OpenGLをコンパイルしようとしてCygwinで 「gcc -o sample (プログラムの名前).c -I/usr/local/include -lglut32 -lglu32 -lopengl32」 と入力すると 「In file included from /usr/include/GL/glut.h:132, from (プログラムの名前).c:1: /usr/include/w32api/GL/glu.h:230: error ハクヒ。・ィ・鬘シ before '*' taken」 と表示されてコンパイルできません。「ハクヒ。・ィ・鬘シ」の部分は文字化けだと思います。このエラーメッセージから何が問題か分かる方がいらっしゃいましたら回答していただけると嬉しいです。CygwinはNetinstallからすべてのものをインストールしたので足りないものはないと思います。よろしくお願いします。

  •  OpenCV2.1.0でのコンパイルエラーについて、質問があります。

     OpenCV2.1.0でのコンパイルエラーについて、質問があります。  初心者で至らない点があるかと思いますが、ぜひ回答よろしくお願いします。  動画キャプチャを再生するプログラムを作ろうと、DirectXを利用しています。  (Visual C++ 2010 expressを使っています)  インクルードファイルでの<cv.h>や<dshow.h>は、Microsofot windows SDK 6.1  やOpenCv2.1.0をインストールして、VC++ディレクトリ中の   インクルードファイル(*.h)は    c:\OpenCV2.1\include\opencv   ラ イブラリファイル(*.lib)は    c:\OpenCV2.1\lib   ダイナミックリンクライブラリ ファイル(*.dll)は    c:\OpenCV2.1\bin  (これは、”実行可能なファイル"のところへ)  設定して、コンパイルエラーは出ないようになりました。  しかし、   「インクルードファイル(*.h)は  c:\OpenCV2.1\include\opencv」  の処置のおかげで、同一フォルダに入っている   「cxtypes.h」と「cxoperations.hpp」の二つで、下記のようなコンパイルエラーが出ます。   エラーメッセージ > error C3862: /clr:pure または /clr:safe を伴うアンマネージ関数を   コンパイルできません  インラインのネイティブ アセンブリはマネージ コードで   サポートされていません >error C3645: : __clrcall は、ネイティブ コードにコンパイルされた関数  では使用できません  上のエラーから、clrの問題と考えて、.NET .Freamework 4.0(x68)を  新しくインストールしましたが、上のエラーが解決せず、コンパイルできません。  VC++ディレクトリ中のリンカーは、     strmiids.lib     cv.lib     cxcore.lib     highgui.lib     dxerr.lib     dxguid.lib     d3dx9.lib     d3dx10.lib     d3d9.lib     winmm.lib     comctl32.lib     strmbase.lib  にしました。  コンパイルエラーを解決する方法をご教示くださると、大変幸いです。  よろしくお願いします。

  • cygwinでのboost

    cygwin上でboostを用いたいんですが、うまくいきません。 test.cppで、#include<boost/ramdom.hpp>としており、 コマンドを、 $ g++ -I"C:\cygwin\usr\include\boost-1_33_1" test.cpp とすると boost/ramdom.hpp: No such file or directory となってしまいます。 ramdomがboost-1_33_1の中にあるのは確認してます。 いろいろ調べてみたんですが上手くいきません。 よろしくお願いします。

  • C++でOpenCV コンパイルでエラー

    超初心者です。 Visual C++2010 ExpressでOpenCVを使おうとしています。 このページを参考にしています。 http://gihyo.jp/dev/feature/01/opencv/0002?page=2 プログラムは以下の通り。 #include <C:\Program Files (x86)\opencv\build\include\opencv\cv.h> #include <C:\Program Files (x86)\opencv\build\include\opencv\highgui.h> int main(int argc, char* argv[]) { IplImage* img; // 画像ファイルポインタの宣言 char imgfile[] = "lena.jpg"; // 読み込み画像ファイル名 // 画像の読み込み img = cvLoadImage(imgfile, CV_LOAD_IMAGE_COLOR); // 画像の表示 cvNamedWindow ("lena", CV_WINDOW_AUTOSIZE); cvShowImage ("lena", img); cvWaitKey (0); cvDestroyWindow("lena"); // 画像の解放 cvReleaseImage(&img); return 0; } コンパイルすると、以下のエラーメッセージが出ます。 1>------ ビルド開始: プロジェクト: try, 構成: Debug Win32 ------ 1> try.cpp 1>c:\program files (x86)\opencv\build\include\opencv\cv.h(63): fatal error C1083: include ファイルを開けません。'opencv2/core/core_c.h': No such file or directory ========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ========== どのようにすれば通るのでしょうか? 教えてください。よろしくお願いします。

  • opencvにおけるコンパイルエラー解決法

    【visual studio2010におけるopencv利用上でのコンパイルエラー】 当方visual studioもopencvも初心者です。踏まえてお答えいただけると大変助かります。 この度、オプティカルフローに関する勉強をしようとopencvの利用を始めました。 しかし、以下の文章が出てきてコンパイルができません。 optical_flow.cpp(1): warning C4627: '#include "cv.h"': プリコンパイル済みヘッダーの使用を検索中にスキップされました ディレクティブを 'StdAfx.h' に追加するか、プリコンパイル済みヘッダーをビルドし直します optical_flow.c++(2): warning C4627: '#include "highgui.h"': プリコンパイル済みヘッダーの使用を検索中にスキップされました ディレクティブを 'StdAfx.h' に追加するか、プリコンパイル済みヘッダーをビルドし直します (この後は、上記ヘッダファイル内で宣言していると思われる関数が無効である。という旨のエラーメッセージが延々と続きます) visualstudio上の設定はしっかりと行い、環境設定上のpath設定も行いました。なお、設定は下記URLに従って行い、白い画面が出るプログラムまでは正常に動作しました。 http://imagesensing.seesaa.net/article/200532994.html しかし、以下のHPに記載されているオプティカルフローのサンプルプログラムを動かそうとすると上記のヘッダファイルが開けない。という旨のエラーメッセージが出ます。 http://opencv.jp/sample/optical_flow.html そのままコンパイルしようとした際、プリコンパイルヘッダーをソースに追加する指示が一度出たので#include "StdAfx.h"はソースに追加してあります。 プリコンパイルヘッダーを使用しない。という設定も試みましたがダメでした。 解決法を教えてください。宜しくお願いします。

  • BCC32のコンパイルでDOSアプリ

    bcc32 test これでコンパイルしてできた実行ファイルはWin32でした。 クイックビューアで見た時にDOS EXECUTABLEと表示される ようにコンパイルするにはどうしたらいいんですか? 下記がtest.cppのソースです。 #include <iostream.h> int main(){ printf("hello"); return 0; }

  • Xプログラムのコンパイルで;;

    gcc -o aaa aaa.c -lXm -lXt -lX11 とコマンドを打ってやると /usr/bin/ld: cannot find -lXm とでてきてコンパイルできません(-lXt,-lX11も同様)。 LessTif等必要なツールはインストールしてあります。 パス(?)が通っていないというのが原因だと思うのですがいまいち分かりません。 どなたか解決策をお願いします。 環境 RedHatLinux 参考パス /usr/X11R6/LessTif/Motif1.2/ →bin , includeフォルダがある。

  • Cコンパイルエラーについて

    ◆OS Solaris 8 4/01 s28s_u4wos_08 SPARC ◆cソース(test.c) #include <stdio.h> int main() { printf("hello, world\n"); return 0; } ◆環境変数 PATH=/usr/sbin:/usr/bin:/usr/local/bin:/usr/sbin:/usr/css/bin:/usr/sfw/bin:/opt/sfw/bin:/usr/ccs/bin:/usr/openwin/bin:/usr/openwin/bin LD_LIBRALY_PATH=/usr/lib:/usr/local/lib:. ◆コンパイル gcc -o test -g -DDEBUGGING -fno-strict-aliasing -I/usr/local/include -L/usr/local/lib test.c -lsocket -lnsl -lmalloc -ldl -lld -lm -lcrypt -lsec -lc ◆エラー内容 ld: 重大なエラー: ライブラリ -lld: 見つかりません。 ld: 重大なエラー: ファイル処理エラー。test へ書き込まれる出力がありません。 collect2: ld はステータス 1 で終了しました 上記エラー対処方法をご教授下さい。宜しくお願いします。

  • OpenCVの実行エラー

    OpenCVで下記の用なテストプログラムを作成しました。 --------------------------------------- #include <stdio.h> #include <cv.h> #include <cxcore.h> #include <highgui.h> #pragma comment(lib, "cv.lib") #pragma comment(lib, "cxcore.lib") #pragma comment(lib, "highgui.lib") int main(void) { unsigned char *Image; IplImage* img = NULL; IplImage* clone = NULL; // 画像読み込み img = cvLoadImage("image.bmp", -1); // 画像コピー clone = cvCloneImage(img); return 0; } --------------------------------------- ところが、実行すると --------------------------------------- Bad argument(Bad image header) in function cvCloneImage, D:\User\VP\openCV\cxcore\src\cxarray.cpp --------------------------------------- というエラーメッセージがでて実行することができませんでした。 OpenCVに付属していたsampleプログラムは動作しました。 // 画像コピー clone = cvCloneImage(img); の一文をコメントアウトするとエラーはなぜかでません。 このエラーはどうしてでるのでしょうか? OSはwindowsXP コンパイルはC++6.0とVS2005の両方で試しましたが同じ結果がでます。

  • OpenCVをC++2010で使おうとしてます。

    OpenCVをC++2010で使おうとしてます。しかし以下のようなエラーで上手く成功しません 1>------ ビルド開始: プロジェクト: image, 構成: Debug Win32 ------ 1> image.cpp 1>c:\users\moeru\documents\visual studio 2010\projects\image\image\image.cpp(8): fatal error C1083: include ファイルを開けません。'highgui.h': No such file or directory ========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ========== パソコンはソニーのバイオで、windows7です。 参考文献はOpenCVプログラミングブック第2版。 インクルードファイルのディレクトリの設定は。 C:\Program Files\OpenCV\cv\include C:\Program Files\OpenCV\cvaux\include C:\Program Files\OpenCV\cxcore\include C:\Program Files\OpenCV\otherlibs\highgui ライブラリの方の設定は C:\Program Files\OpenCV\lib プロジェクト作成は win32→[win32プロジェクト]を選択しファイル名をimageにしました。 アプリケーション設定では追加のオプションの[空のプロジェクト(E)]にチェックマークをして完了しました。 次にプロジェクトの静的ライブラリの設定で、[構成プロパティ]→[リンカ]→[入力]と進み 追加の依存ファイルに ;highgui.lib;cxts.lib;cv.lib;cxcore.lib;ml.lib;cvaux.lib;cvhaartraining.lib と入力しました。 ソースコード生成で、ソリューションエクスプローラー→ソースファイルを右クリック→追加→新しい項目→visualC++→コード→C++ファイル(.cpp)を選択し、ファイル名をimageにしました。 そのまま本のあるサンプルプログラムをダウンロードし貼り付けをしてデバックしました。 以上の手順で何か間違っているところはありますか? 本にある内容をそのまま実行しましたが上手くいきません。PCやプログラミングも大変初心者でわからないこと沢山ありますが、どなたかご教授をおねがいします。