2012-02-02 13 views
2

EclipseからOpenCVを起動して非常に小さなアプリを取得する際に問題が発生しています。アプリケーションはコマンドラインからうまく起動しますが、Eclipseから起動すると出力がなくなり、即座に終了します。私は少なくとも "Hello \ o /"がコンソールに出力されることを期待しています。Eclipseから起動したときにOpenCV C++アプリが直ちに終了する

私は、OpenCVに関連するメソッドを呼び出すと、これが起こることがわかりました。 OpenCVに関連するすべての行をコメントアウトすると、Eclipse Consoleに「Hello \ o /」と表示されます。

問題は、実行時にOpenCV DLLを見つけることができなかったことを前提としています(この問題をコマンドラインで最初に見つけましたが、OpenCV binディレクトリをPATH変数に追加して解決しました) 。 Eclipseで個別に実行コンフィギュレーションに追加しようとしましたが、これは違いはありません。

この問題の原因は何ですか?

マイ出典:

#include "opencv2/opencv.hpp" 
#include "opencv2/highgui/highgui.hpp" 
#include <stdio.h> 
#include <iostream> 
using namespace std; 

int main(int argc, char** argv) { 
cout << "Hello \\o/" << endl; 
    /* data structure for the image */ 
    IplImage *img = 0; 

    /* check for supplied argument */ 
    if (argc < 2) { 
     fprintf(stderr, "Usage: loadimg <filename>\n"); 
     return 1; 
    } 

    /* load the image, 
    use CV_LOAD_IMAGE_GRAYSCALE to load the image in grayscale */ 
    img = cvLoadImage(argv[1], CV_LOAD_IMAGE_COLOR); 
    /* always check */ 
    if (img == 0) { 
     fprintf(stderr, "Cannot load file %s!\n", argv[1]); 
     return 1; 
    } 

    /* create a window */ 
    cvNamedWindow("image", CV_WINDOW_AUTOSIZE); 

    /* display the image */ 
    cvShowImage("image", img); 

    /* wait until user press a key */ 
    cvWaitKey(0); 

    /* free memory */ 
    cvDestroyWindow("image"); 
    cvReleaseImage(&img); 

    return 0; 
} 
+0

私はOpenCVの経験がありませんが、私はそれが正しく表示されている場合、常にコンソールでHello Worldの出力を取得する必要があります。とにかく実行コマンドに引数を追加していますか?あなたが明示的にそれらを求めているからです... – niktehpui

+0

そう、私はいつも "Hello"を見て、入力画像である単一の引数を追加しています。コードは単純にそれを表示します。私は実際にEclipseで新しくワークスペースを作成することでそれを稼働させることができました。これは、Eclipseが単に私の現在の環境で最新のものになっていないと信じさせています。後でEclipseを再起動したにもかかわらず、私は自分のワークスペースを作成した後にOpenCVのbinディレクトリを追加しました。少なくとも今のところ、2つの間の設定の違いを見つけることのちょうど問題です。 – Kingamajick

答えて

2

あなたはおそらくLD_LIBRARY_PATH(環境変数)でのOpenCVののlibディレクトリが欠落しています。

+0

これは、実行の設定で、これを設定することによって私のために働いた:)私は、ワークスペースが作成されたときにEclipseがこれを生成していると仮定しています(新しいワークスペースが動作しています)。これを設定せずにワークスペースレベルでこれをどこで設定できるか知っていますか? – Kingamajick

+0

システムの再起動後にこの設定を適用したい場合は、 '〜/ .bashrc'を編集して、次の行を追加してください:' export LD_LIBRARY_PATH = $ LD_LIBRARY_PATH:path_to_opencv_libs' – karlphillip

+1

チャームのように働きました^ _ ^ありがとう! – kunal18

-1

私は同じ問題がありました。すべてのパスを最初に確認して修正しました。

何も動作していないように見えるときは、新しいワークスペースを作成してくれました。

関連する問題