1

同じディレクトリにある画像「kindle-fire-hd.jpg」を開こうとする簡単なOpenCVプログラムを作成します。IDEはCode::Blockであり、バージョンOpenCVは2.4.2であり、コンパイラーはCode::Blockのコンポーネントとして接続されているMinGWです。コードを次に示します。

#include "opencv2/highgui/highgui.hpp"
#include <iostream>

using namespace cv;
using namespace std;

int main(int argc, char** argv)
{
  Mat im = imread(argc == 2 ? argv[1] : "kindle-fire-hd.jpg", 1);
  if (im.empty())
  {
    cout << "Cannot open image!" << endl;
    return -1;
  }

  imshow("image", im);
  waitKey(0);

  return 0;
}

正しくビルドおよびコンパイルでき(エラーおよび警告メッセージなしで)、 Windows7でのOpenCV2.4およびMinGWの使用開始で述べたようにCode::Blockを構成しました。

しかし、私がこのプログラムを「実行」すると。「libgcc_s_dw2-1.dllがありません」というメッセージが表示されます。

また、[OK]ボタンをクリックすると、コンソールウィンドウに次のメッセージが表示されます。

コンソール、エラーコードウィンドウ

stackoverflowで関連する質問を検索しようとしましたが、すべての解決策でこの問題を解決することはできません。ありがとう。

4

2 に答える 2

4

最後に、この問題を修正します!

この「dllが見つからない」問題を引き起こすこの理由は、Code::Blockに接続されているMinGWコンパイラが完全ではないためです。したがって、必要なDLLファイルをディレクトリ "C:\ Program Files(x86)\ CodeBlocks \ MinGW \ libexec \ gcc \ mingw32 \ 4.4.1"にダウンロードする必要があります。このディレクトリには、このディレクトリのパスも追加する必要があります。システムPATH環境変数。

この場合、libgcc_s_dw2-1.dllに関するエラーメッセージが1つしかない場合でも、libgcc_s_dw2-1.dllとlibstdc++-6.dllの2つのDLLファイルをダウンロードします。2番目のlibstdc++-6.dllを忘れた場合、プログラムの実行時に別の欠落したメッセージが表示されます。

最初のdll、libgcc_s_dw2-1.dllは、libgcc_s_dw2-1.dllをどこで入手できますか?、ダウンロードリンクは著者rodrigoによって選択された回答にリストされています。男に感謝します!

2番目のdlllibstdc++-6.dllは、http: //sourceforge.net/projects/mingw/files/MinGW/Base/gcc/Version4/gcc-4.6.2-1/libstdc%2B%2B-からダウンロードできます。 4.6.2-1-mingw32-dl​​l-6.tar.lzma / download

于 2012-10-03T02:55:43.250 に答える
1

なんらかの理由で、Code ::blocksはそのDLLに同梱されていませんが、Googleのサイトからダウンロードできます。おそらくもう1つのDLLが必要になります。これはlibstdc++6.dllになります。

人々は、リンクオプションで-static-libgcc、-static-、または-static-libg ++をリンクするように通知しますが、少なくとも私のバージョン(そしておそらくあなたのバージョン)では、間違っていない限り問題は解決しません。これはもっともらしいです。

于 2012-10-03T02:00:41.347 に答える