2009-06-12 15 views
1

ライブラリをプログラムに接続すると、Eclipseは実行可能ファイルを生成せず、オブジェクトファイルのみを取得します。 プログラムからライブラリを切断すると(すべてのパスとライブラリ関数が削除されます)、実行可能ファイルが取得されます。EclipseでのCプログラミング(ライブラリミステリー)

ただし、最初のケースではエラーは発生しません。

何が問題になりますか?

私はLinux、C、Eclipseで動作します。

ログイン:プロジェクトの設定のデバッグの

****ビルドログでWise_test_C ****

make all 
Building target: Wise_test_C 
Invoking: GCC C Linker 
gcc -L"/export/home/pdmazubi3/workspace/WISE_C/Debug" -o"Wise_test_C" ./src/Wise_test_C.o -lWISE_C 
/export/home/pdmazubi3/workspace/WISE_C/Debug/libWISE_C.so: undefined reference to `cvGetRawData' 
/export/home/pdmazubi3/workspace/WISE_C/Debug/libWISE_C.so: undefined reference to `cvPow' 
/export/home/pdmazubi3/workspace/WISE_C/Debug/libWISE_C.so: undefined reference to `cvCreateGraphScanner' 
/export/home/pdmazubi3/workspace/WISE_C/Debug/libWISE_C.so: undefined reference to `sqrt' 
/export/home/pdmazubi3/workspace/WISE_C/Debug/libWISE_C.so: undefined reference to `cvColorToScalar' 
/export/home/pdmazubi3/workspace/WISE_C/Debug/libWISE_C.so: undefined reference to `Fuzzy10' 
/export/home/pdmazubi3/workspace/WISE_C/Debug/libWISE_C.so: undefined reference to `cvExp' 
/export/home/pdmazubi3/workspace/WISE_C/Debug/libWISE_C.so: undefined reference to `cvTransform' 
/export/home/pdmazubi3/workspace/WISE_C/Debug/libWISE_C.so: undefined reference to `cvReleaseMat' 
/export/home/pdmazubi3/workspace/WISE_C/Debug/libWISE_C.so: undefined reference to `cvAddS' 
/export/home/pdmazubi3/workspace/WISE_C/Debug/libWISE_C.so: undefined reference to `cvHoughLines2' 
/export/home/pdmazubi3/workspace/WISE_C/Debug/libWISE_C.so: undefined reference to `cvSetAdd' 
/export/home/pdmazubi3/workspace/WISE_C/Debug/libWISE_C.so: undefined reference to `cvAvgSdv' 
/export/home/pdmazubi3/workspace/WISE_C/Debug/libWISE_C.so: undefined reference to `cvError' 
/export/home/pdmazubi3/workspace/WISE_C/Debug/libWISE_C.so: undefined reference to `cvSeqSlice' 
/export/home/pdmazubi3/workspace/WISE_C/Debug/libWISE_C.so: undefined reference to `floor' 
/export/home/pdmazubi3/workspace/WISE_C/Debug/libWISE_C.so: undefined reference to `cvCircle' 
/export/home/pdmazubi3/workspace/WISE_C/Debug/libWISE_C.so: undefined reference to `cvGetCols' 
/export/home/pdmazubi3/workspace/WISE_C/Debug/libWISE_C.so: undefined reference to `cvLoadImage' 
/export/home/pdmazubi3/workspace/WISE_C/Debug/libWISE_C.so: undefined reference to `cvAlloc' 
/export/home/pdmazubi3/workspace/WISE_C/Debug/libWISE_C.so: undefined reference to `cvRead' 
/export/home/pdmazubi3/workspace/WISE_C/Debug/libWISE_C.so: undefined reference to `cvFitLine' 
/export/home/pdmazubi3/workspace/WISE_C/Debug/libWISE_C.so: undefined reference to `cvUndistort2' 
/export/home/pdmazubi3/workspace/WISE_C/Debug/libWISE_C.so: undefined reference to `cvLog' 
/export/home/pdmazubi3/workspace/WISE_C/Debug/libWISE_C.so: undefined reference to `cvFree_' 
/export/home/pdmazubi3/workspace/WISE_C/Debug/libWISE_C.so: undefined reference to `cvCreateImage' 
/export/home/pdmazubi3/workspace/WISE_C/Debug/libWISE_C.so: undefined reference to `cvCalcEMD2' 
/export/home/pdmazubi3/workspace/WISE_C/Debug/libWISE_C.so: undefined reference to `cvGetElemType' 
/export/home/pdmazubi3/workspace/WISE_C/Debug/libWISE_C.so: undefined reference to `cvPolyLine' 
/export/home/pdmazubi3/workspace/WISE_C/Debug/libWISE_C.so: undefined reference to `cvFitEllipse2' 
/export/home/pdmazubi3/workspace/WISE_C/Debug/libWISE_C.so: undefined reference to `cvBoundingRect' 
/export/home/pdmazubi3/workspace/WISE_C/Debug/libWISE_C.so: undefined reference to `cvPerspectiveTransform' 
/export/home/pdmazubi3/workspace/WISE_C/Debug/libWISE_C.so: undefined reference to `cvCalcArrHist' 
/export/home/pdmazubi3/workspace/WISE_C/Debug/libWISE_C.so: undefined reference to `cvCalibrateCamera2' 
/export/home/pdmazubi3/workspace/WISE_C/Debug/libWISE_C.so: undefined reference to `Fuzzy24' 
/export/home/pdmazubi3/workspace/WISE_C/Debug/libWISE_C.so: undefined reference to `cvInvert' 
/export/home/pdmazubi3/workspace/WISE_C/Debug/libWISE_C.so: undefined reference to `cvAvg' 
/export/home/pdmazubi3/workspace/WISE_C/Debug/libWISE_C.so: undefined reference to `cvSum' 
/export/home/pdmazubi3/workspace/WISE_C/Debug/libWISE_C.so: undefined reference to `cvProjectPoints2' 
/export/home/pdmazubi3/workspace/WISE_C/Debug/libWISE_C.so: undefined reference to `cvSet' 
/export/home/pdmazubi3/workspace/WISE_C/Debug/libWISE_C.so: undefined reference to `cvFindExtrinsicCameraParams2' 
/export/home/pdmazubi3/workspace/WISE_C/Debug/libWISE_C.so: undefined reference to `cvRandArr' 
/export/home/pdmazubi3/workspace/WISE_C/Debug/libWISE_C.so: undefined reference to `cvReshape' 
/export/home/pdmazubi3/workspace/WISE_C/Debug/libWISE_C.so: undefined reference to `cvGetSeqElem' 
/export/home/pdmazubi3/workspace/WISE_C/Debug/libWISE_C.so: undefined reference to `cvBoxPoints' 
/export/home/pdmazubi3/workspace/WISE_C/Debug/libWISE_C.so: undefined reference to `cvSetImageROI' 
/export/home/pdmazubi3/workspace/WISE_C/Debug/libWISE_C.so: undefined reference to `cvMinAreaRect2' 
/export/home/pdmazubi3/workspace/WISE_C/Debug/libWISE_C.so: undefined reference to `cvInitSubdivDelaunay2D' 
/export/home/pdmazubi3/workspace/WISE_C/Debug/libWISE_C.so: undefined reference to `cvFindFundamentalMat' 
/export/home/pdmazubi3/workspace/WISE_C/Debug/libWISE_C.so: undefined reference to `cvSet2D' 
/export/home/pdmazubi3/workspace/WISE_C/Debug/libWISE_C.so: undefined reference to `cvCvtColor' 
/export/home/pdmazubi3/workspace/WISE_C/Debug/libWISE_C.so: undefined reference to `cvLine' 
/export/home/pdmazubi3/workspace/WISE_C/Debug/libWISE_C.so: undefined reference to `cvReleaseGraphScanner' 
/export/home/pdmazubi3/workspace/WISE_C/Debug/libWISE_C.so: undefined reference to `cvRodrigues2' 
/export/home/pdmazubi3/workspace/WISE_C/Debug/libWISE_C.so: undefined reference to `cvKMeans2' 
/export/home/pdmazubi3/workspace/WISE_C/Debug/libWISE_C.so: undefined reference to `cvEllipse' 
/export/home/pdmazubi3/workspace/WISE_C/Debug/libWISE_C.so: undefined reference to `cvInitFont' 
/export/home/pdmazubi3/workspace/WISE_C/Debug/libWISE_C.so: undefined reference to `cvResetImageROI' 
/export/home/pdmazubi3/workspace/WISE_C/Debug/libWISE_C.so: undefined reference to `cvGet2D' 
/export/home/pdmazubi3/workspace/WISE_C/Debug/libWISE_C.so: undefined reference to `cvCreateMat' 
/export/home/pdmazubi3/workspace/WISE_C/Debug/libWISE_C.so: undefined reference to `cvFindChessboardCorners' 
/export/home/pdmazubi3/workspace/WISE_C/Debug/libWISE_C.so: undefined reference to `cvGetFileNodeByName' 
/export/home/pdmazubi3/workspace/WISE_C/Debug/libWISE_C.so: undefined reference to `cvSplit' 
/export/home/pdmazubi3/workspace/WISE_C/Debug/libWISE_C.so: undefined reference to `cvCartToPolar' 
/export/home/pdmazubi3/workspace/WISE_C/Debug/libWISE_C.so: undefined reference to `cvGetRows' 
/export/home/pdmazubi3/workspace/WISE_C/Debug/libWISE_C.so: undefined reference to `cvCreateSubdiv2D' 
/export/home/pdmazubi3/workspace/WISE_C/Debug/libWISE_C.so: undefined reference to `cvConvexHull2' 
collect2: ld returned 1 exit status 
make: *** [Wise_test_C] Fehler 1 
+1

あなたに役立つビルドログを投稿する必要があります – Joe

+0

ログファイルはどこにありますか? eclipseは何かを生成しますか? – user101375

+2

@lerax ...ビルド出力に感謝します。私の編集を参照してください.. OpenCVがリンクされていないようです:) –

答えて

4

ルック/出力を構築します。リンカーはあなたが意味するライブラリを見つけることができないので、コンパイルはオブジェクト生成時に停止します。

編集

collect2: ld returned 1 exit status 

リンカは は私の推測... OpenCVのがリンクされていない

OpenCVのを使用していますそれはあなたのプログラムのように見えます

を失敗しています。実行可能ファイルをopenCVにリンクして、ライブラリlibWISE_C.so内のシンボルが解決されるようにする必要があります。 eclipseを使用して依存関係を追加するか、手動で行います。 opencvヘッダをインクルードし、ライブラリパスを "-L"で囲み、ライブラリバイナリをリンクする必要があります。

Eclipseでは、プロジェクトを右クリックして[プロパティ]に移動します。次に、GCC C++ Linkerの下にあるLibrariesセクションを開きます。ライブラリ(-l)パネルで、opencvの値を含むエントリを追加し、「OK」をクリックします。

幸運

+0

しかし、私は私の図書館でOpenCVをリンクしています。私はOpenCVから何も使用していません。十分ではありませんか? libWISE_C.soだけにOpenCVが必要な場合、両方のライブラリを私のプログラムにリンクする必要がありますか? – user101375

+0

端末を開いて、/ export/home/pdmazubi3/workspace/WISE_C/Debug /に 'ldd libWISE_C.so'と入力すると、opencvがリストに表示されますか? –

+0

ボトムラインはopencvがライブラリやプログラムに含まれていないため、ldエラーです。 lddを使用してそれぞれの出力を取得します。 –

2

libWISE_C.soOpenCVまたは類似のライブラリを使用しているように見えます。 は、実行可能ファイルのリンク行に他のライブラリを提供する必要があります。そうしないと正常にリンクできません。

自分でlibWISE_C.soを作成したので、未定義のシンボルがどのような他のライブラリから来たのか知っているはずです。

libWISE_C.soのリンク行にこの「他のライブラリ」を追加して、無料のlibWISE_C.soクライアントを追加することもできます。

+1

こんにちは、私はlibWISE_C.soを自分で書きました。私はちょうどそれをテストしたい。 – user101375

関連する問題