• 締切済み

OpenCV2.0or2.1でスタティックリンクライブラリをビルドした

OpenCV2.0or2.1でスタティックリンクライブラリをビルドしたい 表題の件ですが、MFCをスタティックリンクさせてビルドしているアプリケーションだと、OpenCVをインストールしたときに出来上がるライブラリではエラーの出るものがあります。そのエラーはMFCをDLLでビルドすると出ません。なのでOpenCVをスタティックライブラリでビルドすることで解決しそうなのですが、OpenCVの場合これがかなりややこしいです。 アプリケーションのソリューションにOpenCVの各ライブラリのプロジェクトを挿入する方法も試みたのですが、依存関係が複雑で解決しきれませんでした。 ということでOpenCVのスタティックリンクライブラリのビルド方法を知りたいのですが、Webにある情報ではうまくいかないものが多いので、いろいろな見識をうかがわせていただければ幸いです。 ■環境 VisualStudio2008Professional+OpenCV2.0or2.1+CMake

みんなの回答

  • sainte
  • ベストアンサー率50% (10/20)
回答No.1

非デバッグ版でもですか?

crysis5375
質問者

補足

現在うろ覚えなのですが、スタティックの場合はデバッグ版でもきつかったように思います

関連するQ&A

  • Borland C Builder とOpenCVをリンクしたい。

    Borland C Builder とOpenCVをリンクしたい。 Borland C Builder V5でOpenCV V2.1.0を使おうとこの1週間試行錯誤していますが、やり方がわかりません。 http://opencv.jp/opencv2-x-tips/install-on-windowswindows32bit-64bit-visual-studio-opencv21 に書かれている通りにOpenCV-2.1.0-win32-vs2008.exeをDLしてCMAKEを実行させたのですが、Build内のbinやlibには何も生成されません。 OpenCV-2.0.0a-win32.exeも試しましたが同様です。 CMAKEはやはりマニュアル通りにソースはc:\OpenCV2.0 ビルドはc:\OpenCV2.0\Buildとし、Configure、ビルドフォルダー作成Yes、Borland Make Fileを選択してパスはdefault native computerにし、Configure、赤表示が出てConfiguring doneが出た後再度Configgure、Generateと操作していますが、結果のBuild内のbinやlibフォルダーには何も出力されませんし。 このCMAKEと言うのを使用するのは初めてで、使い方は分からないのでマニュアルどおり(と思っている方法)で行っています。 系列は違いますが、OpenGLの方はBorland C Builderとリンク出来、サンプルプログラムの実行も成功しております。 今回、OpenCVを使う必要があり、何方か私の操作ミスお分かりの方が居られましたら正しい方法をお教え下さい。 よろしくお願い致します。

  • MacへのOpenCVについて

    MacへのOpenCVについて 失礼します。 MacOSX10.6にOpenCVをインストールしている最中なのですが、問題が発生して先に進まなくなってしまい、困っています。 ちなみにこちらのサイト→http://keepkeptkept.seesaa.net/article/153200416.htmlを参考のさせていただいているのですが、3のところでつまづいてしまいました。 3.CMakeでのインストール (ver2.1 64bit or 32bit) まず、ソースファイルを入手するためにSubversionのインストール。 $ sudo port subversion 次に、cmakeのインストール。ちなみにcmakeはクロスプラットフォームのmakeのこと。 $ sudo port cmake そして、ソースファイルの入手。 $ svn co https://code.ros.org/svn/opencv/trunk/opencv ここまではうまく行くのですが、次の $ cv opencv cmakeを使ってビルドします。 を実行すると-bash: cv: command not foundと返されてしまいます。これはPATHが通っていないということなのかなと考えているのですが、解決方法がわかりません。 勉強不足でもうしわけないのですが、ご教授よろしくお願い致します。 * グレード

  • openCVプログラムをvisualstudioC++2005でビルドできません

     openCVとvisualstudioC++2005を使ってプログラムを書こうとしたんですが、プログラムを書き終えビルドしようとすると次のエラーが出てきてビルドできません。 ●fatal errorLNK1104:ファイル’user32.lib’を開くことが出来ません。  platformSDKのインストール、設定、visualstudioの設定は参考本に書いてある通りにしっかりと設定をしました。初心者なので質問条件足りないかもしれませんがよろしくお願いします。

  • OpenCV1.1、OpenCV2.3の使い方

    これまでOpenCV1.1を使っていたのですが類似画像検索をするのにHOG特徴量を用いたいと思い、HOG特徴量を求める関数のあるOpenCV2.3もインストールしました。 その際、OpenCV1.1はアンインストールして、最初からプログラムを書き換えないとダメなのでしょうか?ためしに今まで書いていたプログラムにOpenCV2.3のライブラリをインクルードしてみると、それだけで100個以上のビルドエラーが発生してしまいました。CとC++の違いによるものなのでしょうか? あとPathの設定などもOpenCV1.1のときのものを残したまま、OpenCV2.3用のPathを追加しただけなのですが、大丈夫なのでしょうか? 解決方法がわかる方がいらっしゃれば、教えて下さい。よろしくお願いいたします。

  • OpenCVのリンクエラー

    Windows XP, Visual C++ 6.0の環境でOpenCVを始めました。OpenCVに含まれるサンプルのビルドにおいて「kalman.obj : error LNK2001: 外部シンボル "_cvDestroyWindow" は未解決です」等のエラーが発生します。初歩的な問題で申し訳ありませんが解決法を教えて下さい。尚、Visual C++のツール->オプション->ディレクトリには以下を加えております。 インクルード C:\Program Files\OpenCV\cv\include C:\Program Files\OpenCV\cxcore\include C:\Program Files\OpenCV\CVAUX\INCLUDE C:\Program Files\OpenCV\OTHERLIBS\CVCAM\INCLUDE C:\Program Files\OpenCV\otherlibs\highgui ライブラリ C:\Program Files\OpenCV\lib C:\Program Files\OpenCV\otherlibs\highgui

  • Xcode4へのOpenCVの設定

     OpenCVを用いて画像処理のプログラミングをしようと思っています.  今まではXcode3を用いていたのですが,もうアップグレードもしなくなりましたしそろそろXcode4へ移行していこうと思っています.そこで,OpenCVを使えるようにXcode4を設定しようと思っています.  現在のXcode3では,OpenCV.frameworkを設定して,「ヘッダ検索パス」「ライブラリ検索パス」などをいじってなんとか使えるようになっているのですが,まだまだ未熟で本当に正しい設定をしているのかもよくわからないような状態です><  Xcode4に同じように設定をした所,64ビットが何だとかなんとか...(英語でよくわからない><)  OpenCVをインストールし直してみようと思い立ちいろいろなサイトを調べてみました.MacPortsを用いたり,Homebrewを用いたりする方法が見つかりましたが,全てError...サイトに書いてある通りの手順を踏んだつもりですが全滅です.あとCMakeもインストールはしましたが,CMake Errorなどという警告が出てCMakeも使えないような状況です.  仕方なく,opencv.jpのサイトに行き手動でダウンロードして展開.  しかし,どのように設定すればXcode4で使えるのかよくわかりません.まだXcode4となると解説されているサイトもあまり見つからなくて...(T_T)  どなたかOpenCVをXcode4で用いる方法をご存知の方はいらっしゃらないでしょうか?  よろしくお願いします.  あと参考までに... 【OS】MacOS 10.8 (MountainLion)〈もっと前のOSからこの症状ですが...) 【Xcode】Version4.5 【OpenCV】OpenCV-2.4.2(とりあえず今回手動でダウンロードしたもの)  正常に動けばOpenCVのバージョンは何でもいいです><

  • 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やプログラミングも大変初心者でわからないこと沢山ありますが、どなたかご教授をおねがいします。

  • MFCに関する質問です。

    みなさん、はじめまして! VC2008でMFCアプリケーションプログラミングを始めて習うものですが、最初にソリューションファイルを作って何も書かない場合でビルドして、デバッグすると白いページが出てきますが、 OpenCVで画像処理の二値化のプログラムを書いて実行したら、ビルドしてエラーは発生しませんが、デバッグしてみると、「OLEの初期化に失敗しました。OLEのライブラリのバージョンが正しいことを確認してください」とのメッセージが出てきて、OKボタンを押すと、何も処理してくれません。 ネット上でいろいろ調べましたが、まだ解決できていません。 MFCについて、まだぜんぜんわからないので、上記のことをどう対処したらいいのかをご指導いただきたいです。 どうぞよろしくお願いします。

  • VS2013リンクするライブラリ一覧表示方法は?

    こんばんは。 Visual Studio 2013の初心者です。基本的なことで困っております。 どうかアドバイスをお願い申し上げます。 ・質問内容 プロジェクトに登録されているリンクするライブラリ名(*.lib)を確認する(一覧表示する)方法を教えて下さい。 ・背景 とある仕事を引きつぐことになりまして、貰ったVS2013のプロジェクト(ソース)をビルドしようとしましたが「****.lib」がありません。と出て来てリンクエラーになってしまいます。 足りないライブラリを追加してまたビルドすると別の「****.lib」がありません。と出てしまいます。この繰り返しです。 しかし、その都度「***.libファイルが足りない」と言って貰うのは、ウザがられるので一括して見る方法が判りません。 プロジェクトファイルでリンクに必要な「ライブラリの一覧」を見たいのです。そして、「これだけのlibが無いので欲しい」と一括して貰いたいのです。 しかし、lib名を検索掛けても何処にリンクに必要なライブラリ一覧が記録されているファイルが見つかりませんでした。 一体何処に記録されているのでしょうか? 色々web検索したのですがどうしても見つかりません。 大変、難儀しております。 宜しくお願い申し上げます。

  • Visual C++,OpenCVでのリンクエラー

    こんにちは。 現在、Microsoft Visual C++ 2010 の環境で、OpenCV(ver2.3.1)を用いて、画像認識のアプリケーションを作ろうと考えています。ただ、Visual C++ 、OpenCV共に扱うのが初めてで、openCVのライブラリーをC++に認識させることができていません。 具体的には、下記の様なエラーが出ます。 「 Sample.obj : error LNK2019: 未解決の外部シンボル _cvReleaseImage が関数 _wmain で参照されました。 (同様に、以下の外部シンボルも参照できていません。_cvDestroyAllWindows、_cvWaitKey、_cvShowImage、_cvSmooth、_cvCreateImage、_cvGetSize、_cvNamedWindow、_cvLoadImage) 」 リンクの設定が上手くできていないと考え、 プロジェクト > ○○のプロパティ > 構成プロパティ > リンカー > 全般 > 追加ライブラリディレクトリ に、C:\opencv\build\x64\vc10\lib というように記入し(64bit環境です)、また、 プロジェクト > ○○のプロパティ > 構成プロパティ > リンカー > 入力 > 追加依存ファイル に、opencv_core231d.lib;opencv_imgproc231d.lib;opencv_highgui231d.lib;opencv_objdetect231d.lib;opencv_contrib231d.lib;opencv_features2d231d.lib;opencv_flann231d.lib;opencv_gpu231d.lib;opencv_haartraining_engined.lib;opencv_legacy231d.lib;opencv_ts231d.lib;opencv_video231d.lib を追加しております。 実行しているサンプルファイルは下記になります。 -------------------- // Sample.cpp : コンソール アプリケーションのエントリ ポイントを定義します。 // #include "stdafx.h" //プロジェクトのプロパティ⇒C/C++⇒全般 の追加のインクルードディレクトリに // 『C:\OpenCV2.3\include』を追加のこと #include "opencv2\\opencv.hpp" #ifdef _DEBUG //Debugモードの場合 #pragma comment(lib,"C:\\opencv\\build\\x64\\vc10\\lib\\opencv_core231d.lib") #pragma comment(lib,"C:\\opencv\\build\\x64\\vc10\\lib\\opencv_imgproc231d.lib") #pragma comment(lib,"C:\\opencv\\build\\x64\\vc10\\lib\\opencv_highgui231d.lib") #pragma comment(lib,"C:\\opencv\\build\\x64\\vc10\\lib\\opencv_objdetect231d.lib") #pragma comment(lib,"C:\\opencv\\build\\x64\\vc10\\lib\\opencv_contrib231d.lib") #pragma comment(lib,"C:\\opencv\\build\\x64\\vc10\\lib\\opencv_features2d231d.lib") #pragma comment(lib,"C:\\opencv\\build\\x64\\vc10\\lib\\opencv_flann231d.lib") #pragma comment(lib,"C:\\opencv\\build\\x64\\vc10\\lib\\opencv_gpu231d.lib") #pragma comment(lib,"C:\\opencv\\build\\x64\\vc10\\lib\\opencv_haartraining_engined.lib") #pragma comment(lib,"C:\\opencv\\build\\x64\\vc10\\lib\\opencv_legacy231d.lib") #pragma comment(lib,"C:\\opencv\\build\\x64\\vc10\\lib\\opencv_ts231d.lib") #pragma comment(lib,"C:\\opencv\\build\\x64\\vc10\\lib\\opencv_video231d.lib") #else //Releaseモードの場合 #pragma comment(lib,"C:\\opencv\\build\\x64\\vc10\\lib\\opencv_core231.lib") #pragma comment(lib,"C:\\opencv\\build\\x64\\vc10\\lib\\opencv_imgproc231.lib") #pragma comment(lib,"C:\\opencv\\build\\x64\\vc10\\lib\\opencv_highgui231.lib") #pragma comment(lib,"C:\\opencv\\build\\x64\\vc10\\lib\\opencv_objdetect231.lib") #pragma comment(lib,"C:\\opencv\\build\\x64\\vc10\\lib\\opencv_contrib231.lib") #pragma comment(lib,"C:\\opencv\\build\\x64\\vc10\\lib\\opencv_features2d231.lib") #pragma comment(lib,"C:\\opencv\\build\\x64\\vc10\\lib\\opencv_flann231.lib") #pragma comment(lib,"C:\\opencv\\build\\x64\\vc10\\lib\\opencv_gpu231.lib") #pragma comment(lib,"C:\\opencv\\build\\x64\\vc10\\lib\\opencv_haartraining_engined.lib") #pragma comment(lib,"C:\\opencv\\build\\x64\\vc10\\lib\\opencv_legacy231.lib") #pragma comment(lib,"C:\\opencv\\build\\x64\\vc10\\lib\\opencv_ts231.lib") #pragma comment(lib,"C:\\opencv\\build\\x64\\vc10\\lib\\opencv_video231.lib") #endif int _tmain(int argc, _TCHAR* argv[]) { //画像データの読込 IplImage* src_img = cvLoadImage("C:\\opencv\\samples\\c\\lena.jpg", CV_LOAD_IMAGE_ANYDEPTH | CV_LOAD_IMAGE_ANYCOLOR); if (src_img == NULL){ return 0; } //表示ウィンドウの作成 cvNamedWindow("src"); cvNamedWindow("dst"); //処理後画像データの確保 IplImage* dst_img = cvCreateImage(cvGetSize(src_img), src_img->depth, src_img->nChannels); //画像処理例(ガウシアンフィルタ) cvSmooth(src_img, dst_img, CV_GAUSSIAN, 9); //画像の表示 cvShowImage ("src", src_img); cvShowImage ("dst", dst_img); //キー入力待ち cvWaitKey (0); //全てのウィンドウの削除 cvDestroyAllWindows(); //画像データの解放 cvReleaseImage(&src_img); cvReleaseImage(&dst_img); return 0; } --------------- 初心者な質問で大変恐縮ながら、どこを修正すればよいかお分かりでしたら、お教え頂けませんでしょうか?何卒宜しくお願いします。

専門家に質問してみよう