OpenCVのリンクエラーの解決法とは?

このQ&Aのポイント
  • Windows XP, Visual C++ 6.0環境でOpenCVを使用している際に「kalman.obj : error LNK2001: 外部シンボル '_cvDestroyWindow' は未解決です」というエラーが発生します。このエラーの解決法について教えてください。
  • Visual C++のツール->オプション->ディレクトリにインクルードとライブラリのパスを追加しましたが、OpenCVのビルドでエラーが発生します。どのような解決策がありますか?
  • OpenCVに含まれるサンプルのビルド時に「kalman.obj : error LNK2001: 外部シンボル '_cvDestroyWindow' は未解決です」というリンクエラーが発生します。このエラーの原因と解決法を教えてください。
回答を見る
  • ベストアンサー

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

  • evgal
  • お礼率50% (2/4)

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

  • ベストアンサー
  • keikan
  • ベストアンサー率42% (75/176)
回答No.1

この辺では?(環境がないのでこれ以上はわかりません^^;;) >依存ファイルの設定 >構成プロパティ→リンカ→入力→追加の依存ファイル >cxcore.lib >cv.lib >cvaux.lib >highgui.lib >cvcam.lib >cvaux.libとcvcam.libは必要に応じて。ほかの3つはたいていの場合使うはず。

参考URL:
http://luvtechno.net/h/hiki.cgi?OpenCV
evgal
質問者

お礼

御回答を有難うございます。 Visual C++.NET上で仰せの通りにしビルド、実行ともに成功しました。 Visual C++ 6.0上でも同じことをしている積りですが何故か上手く行きません。ともかく有難うございました。

関連するQ&A

  • OpenCVについて

    OpenCVについて OpenCVをインストールしたのですが、設定もちゃんとしたと思います。 インクルードファイルには C:\Program Files\OpenCV\cv\include C:\Program Files\OpenCV\cxcore\include C:\Program Files\OpenCV\cvaux\include C:\Program Files\OpenCV\otherlibs\highgui ライブラリファイルには C:\Program Files\OpenCV\bin C:\Program Files\OpenCV\lib を入れています。 したのですが、 fatal error C1083: include ファイルを開けません。'cxcore.h': No such file or directoryというエラーが出て実行できません。 どうしたら実行できるんでしょうか?

  • ビルドエラー(C1083)について

    c++初心者です。 先日学校の課題用に配布された画像処理プログラム(C++)を実行しようとしたのですが、 ビルドエラーが出てしまい、色々調べてみたのですが解決法がわかりません。 エラーの内容は、 fatal error C1083: include ファイルを開けません。'cv.h': No such file or directory というものです。 使用しているのは Microsoft visual c++ 2008 express edition OpenCV です。 また、インクルードファイルには ・C:\Program Files\OpenCV\cv\include C:\Program Files\OpenCV\cvaux\include C:\Program Files\OpenCV\cxcore\include C:\Program Files\OpenCV\ml\include C:\Program Files\OpenCV\otherlibs\highgui ライブラリファイルには ・C:\Program Files\OpenCV\lib を追加し、pathにも ;C:\Program Files\OpenCV\bin\ が追加してあります。 プログラム上の問題ではなく申し訳ないのですが、よろしくお願いします。 OSはvistaです。

  • カメラキャリブレーションのプログラムについて質問です

    んにちは。只今レポート課題でopenCVを使ったカメラキャリブレーションの課題をやっています。 しかしエラーが出てきてとても困っています。エラーの内容は「1>C:\Program Files\OpenCV\cv\include\cv.h(58) : fatal error C1083: include ファイルを開けません。'cxcore.h': No such file or directory」 という内容です openCVをインストールしてPathを変更してライブラリに追加したりと、しっかり下準備をしたのですがどうしても上のようなエラーが出てしまいます。 どうすればエラーが治るのでしょうか。誰か教えてください。お願いします。 ちなみに環境はvisual studio C++ 2005 Express Editionです。Visual C++のツール>オプション>VC++ディレクトリには 以下を加えております。 インクルードファイルには C:\Program Files\OpenCV\cv\include C:\Program Files\OpenCV\cxcore\include C:\Program Files\OpenCV\cvaux\include C:\Program Files\OpenCV\otherlibs\highgui ライブラリファイルには C:\Program Files\OpenCV\bin C:\Program Files\OpenCV\lib を入力しています。 プロパティ>構成プロパティ>リンカ>入力>追加の依存ファイルにはcv.lib cxcore.lib highgui.lib cvaux.lib cvcam.libを入力しています

  • openCVでのデバックエラー

    画像や動画の研究で、aviファイルから色の抽出などを行うためにIntelのopenCVを使用と考えています。 しかし、自作プログラムやopenCVに付属されているサンプルプログラムさえもデバックが失敗してしまい実行することができません。 OSはWindows Professional version2002のVisualC++ 2005で動かしています。 openCVは「OpenCV_b5a」を使用しています。 インストール時にVC++のインクルードファイルに 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 を追加させました。 新しくプロジェクトを作成するたびに、リンカの入力に "cv.lib" "cxcore.lib" "cvaux.lib" "highgui.lib" "ipl.lib" を追加させプログラムを作っています。 しかし、デバックをするとすべてのプログラムにおいて、 'AAA.exe': 'C:\WINDOWS\system32\ntdll.dll' を読み込みました。シンボルが読み込まれていません。 'AAA.exe': 'C:\WINDOWS\system32\kernel32.dll' を読み込みました。シンボルが読み込まれていません。 ・・・・・・ と、シンボルが読み込まれていませんとエラーが沢山表示され、 プログラム '[2508] AAA.exe: ネイティブ' はコード -1 (0xffffffff) で終了しました。 と、失敗して困っています。 初心者ですが、この原因が分かる方いましたらどうぞご教授ください。

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

  • OpenCV2.3 のエラー

    Open CV2.3をVisual Studio2013 expresssに設定しました。 が、プログラムを実行すると 「エラー 3 error LNK1107: ファイルが無効であるか、または壊れています: 0x10B000 を読み取れません。 C:\Program Files\opencv\build\x64\vc10\staticlib\IlmImf.pdb...」 と表示されてしまい、困っています。 エラー原因は[リンカー]-[入力]-[追加の依存ファイル]の設定でしょうか。 当初、libとstaticlibフォルダの中にある、拡張子pbdを含む、重複なしのすべてのファイルを[追加の依存ファイル]に設定していましたが、これがエラーの原因かと思い、 libとstaticlibフォルダ内の、拡張子libのみに修正しました。 が、同じエラーが依然として出ています。 プログラムは以下の内容で、単純に画像を表示させるだけのものです。 ============================================= #include <cxcore.h> #include <cv.h> #include <highgui.h> int _tmain(int argc) { IplImage *src_img = 0, *dst_img; // (1)画像を読み込む src_img = cvLoadImage("C\\Users\\...\\thNDM091S8.jpg", CV_LOAD_IMAGE_COLOR); // (6)画像の表示 cvNamedWindow("Fitting", CV_WINDOW_AUTOSIZE); cvShowImage("Fitting", src_img); cvWaitKey(0); cvDestroyWindow("Fitting"); cvReleaseImage(&src_img); return 0; } ============================================== どこを直せばいいでしょうか。 いろいろと調べましたがわかりませんので、教えていただけると助かります。 よろしくお願いいたします。

  • Opencvで質問

     Opencv初心者です。  今日opencvとVC++2010を設定して今練習中なのですが   #include <stdexcept>   #include <opencv/cv.h>   #include <opencv/highgui.h>   int main (int argc, char* argv[]){   const char *fileName = "C:\\Program Files\\OpenCV2.3.1\\samples\\c\\lena.jpg";   const char *windowName = "lena";   ::IplImage* img = ::cvLoadImage(fileName);   ::cvNamedWindow(windowName);   ::cvShowImage(windowName,img);   ::cvWaitKey();   ::cvDestroyWindow(windowName);   ::cvReleaseImage(&img);   }  と言うサンプルをビルドしたら  1>------ ビルド開始: プロジェクト: 画像処理練習, 構成: Debug Win32 ------  1>LINK : fatal error LNK1104: ファイル 'opencv_core231.lib' を開くことができません。  ========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========  エラーが出てしまい先に進めません。  もしかしたら他に設定が悪いのでしょうか?  インストールもC:\Program Files\OpenCV2.3.1に名前も変えインストールしました。  ttp://shiotani.cn/20110904vc2010opencv.html  ここを参考にさせていただきました。 よろしくお願いします。

  • Windows7 64bit でOpenCV2.1を動かしたい

    Windows7 64bit でOpenCV2.1を動かしたい Windows7 64bit visualstadio2005 でopencv2.1を動かしたいのですがreleaseだと動くのにdebugだとうまく動きません。 ネットの入門ページを参照にして インクルードファイルに C:\OpenCV2.1\include ライブラリファイルに C:\OpenCV2.1\lib C:\OpenCV2.1\bin を追加しました。 プラットフォームはよくわからなかったのでwin32とx64の両方に入れてみました また、環境変数もインストールの時点できちんと入っていることは確認しました。 また、プロジェクトのプロパティ→リンカ→入力→追加依存のファイルにも 構成がdebugのときに cv210d.lib cxcore210d.lib cvaux210d.lib highgui210d.lib releaseのときに cv210.lib cxcore210.lib cvaux210.lib highgui210.lib としています。 また、コード部分に #include "cv.h"と入力してもエラーが出るので #include <C:\OpenCV2.1\include\opencv\cv.h> とすることで対応している状況です。 どうすればうまく動くようになるでしょうか? もしよろしければ回答お願いします

  • OpenCVを使いたいのですが

    Visual C++ 2010にOpenCV2.4.3の導入し、設定を終えたのでプログラムをビルドさせるとエラーが吐き出され動作しません。 どなたか原因がわかる方はいらっしゃらないでしょうか? 【プログラム】 #include<stdio.h> #include<openCV2/opencv.hpp> #ifdef _DEBUG #pragma comment(lib,"opencv_core243d.lib") #pragma comment(lib,"opencv_highgui243d.lib") #pragma comment(lib,"opencv_objdetect243d.lib") #else #pragma comment(lib,"opencv_core243d.lib") #pragma comment(lib,"opencv_highgui243d.lib") #pragma comment(lib,"opencv_objdetect243d.lib") #endif //-------------------------------------------------------- //main int main(int argc,char* argv[]) { const char* szWndName="画像"; if(argc<2) { fprintf(stderr,"入力ファイル名を指定してください。\n"); return -1; } IplImage *img=cvLoadImage(argv[1],CV_LOAD_IMAGE_COLOR); if(img==NULL) return -1; cvNamedWindow(szWndName); cvShowImage(szWndName, img); cvWaitKey(0); cvDestroyAllWindows(); cvReleaseImage(&img); return 0; } 【ビルド後にでるエラーメッセージ】 ------ すべてのリビルド開始: プロジェクト: OpenCV, 構成: Debug Win32 ------ TEST02.c C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(19): error C2054: 'using' の後に '(' が必要です。 C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(19): error C2061: 構文エラー : 識別子 'using' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(19): error C2054: 'using' の後に '(' が必要です。 C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(21): error C2061: 構文エラー : 識別子 'using' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(21): error C2061: 構文エラー : 識別子 'abs' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(21): error C2059: 構文エラー : ';' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(21): error C2061: 構文エラー : 識別子 'atexit' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(21): error C2059: 構文エラー : ';' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(22): error C2061: 構文エラー : 識別子 'atof' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(22): error C2059: 構文エラー : ';' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(22): error C2061: 構文エラー : 識別子 'atoi' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(22): error C2059: 構文エラー : ';' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(22): error C2061: 構文エラー : 識別子 'atol' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(22): error C2059: 構文エラー : ';' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(23): error C2061: 構文エラー : 識別子 'bsearch' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(23): error C2059: 構文エラー : ';' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(23): error C2061: 構文エラー : 識別子 'calloc' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(23): error C2059: 構文エラー : ';' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(23): error C2061: 構文エラー : 識別子 'div' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(23): error C2059: 構文エラー : ';' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(24): error C2061: 構文エラー : 識別子 'exit' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(24): error C2059: 構文エラー : ';' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(24): error C2061: 構文エラー : 識別子 'free' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(24): error C2059: 構文エラー : ';' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(24): error C2061: 構文エラー : 識別子 'getenv' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(24): error C2059: 構文エラー : ';' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(25): error C2061: 構文エラー : 識別子 'labs' この後はエラー表記が続きます。

  • 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 スキップ ========== どのようにすれば通るのでしょうか? 教えてください。よろしくお願いします。