1

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

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

何が問題になっていますか?

私が使用しているのは、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
4

2 に答える 2

4

ログ/ビルド出力を確認します。リンカはあなたが意味するライブラリを見つけることができないので、コンパイルはオブジェクトの生成で停止します。

以下に関して編集する:

collect2: ld returned 1 exit status

リンカが失敗しています

私の推測...OpenCVがリンクされていません
あなたのプログラムもOpenCVを使用しているようです。ライブラリlibWISE_C.soのシンボルが解決されるように、実行可能ファイルをopenCVにリンクする必要があります。Eclipseを介して依存関係を追加するか、手動で追加します。opencvヘッダーを含め、「-L」を介してライブラリパスを含め、ライブラリバイナリをリンクする必要があることを忘れないでください。

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

幸運を

于 2009-06-12T13:29:24.440 に答える
2

OpenCVまたは同様のライブラリlibWISE_C.soを使用しているようです。実行可能ファイルのリンク行に他のライブラリを指定する必要があります。指定しないと、リンクが成功しません。

自分でビルドしたのでlibWISE_C.so、すべての未定義シンボルが由来する他のライブラリを知っておく必要があります。

この「他のライブラリ」をlibWISE_C.soそれ自体のリンク行に追加することもできlibWISE_C.soます。これにより、クライアントはその必要がなくなります。

于 2009-06-16T05:28:29.597 に答える