1

これは初心者の質問かもしれませんが、しばらく立ち往生していて、助けていただければ幸いです...

opencv をインストールし、ターミナルを使用してサンプル アプリケーションを問題なく実行できましたが、プロジェクトを簡単に管理するために Eclipse を使用したい...

この [リンク] http://docs.opencv.org/doc/tutorials/introduction/linux_eclipse/linux_eclipse.htmlの opencv チュートリアルの指示に従いました。

私はすべてに従いましたが、それでも次のエラーが発生します

/usr/bin/ld: cannot find -llibopencv_calib3d
/usr/bin/ld: cannot find -llibopencv_contrib
/usr/bin/ld: cannot find -llibopencv_core
/usr/bin/ld: cannot find -llibopencv_features2d
/usr/bin/ld: cannot find -llibopencv_flann
/usr/bin/ld: cannot find -llibopencv_gpu
/usr/bin/ld: cannot find -llibopencv_highgui
/usr/bin/ld: cannot find -llibopencv_imgproc
/usr/bin/ld: cannot find -llibopencv_legacy
/usr/bin/ld: cannot find -llibopencv_ml
/usr/bin/ld: cannot find -llibopencv_nonfree
/usr/bin/ld: cannot find -llibopencv_objdetect
/usr/bin/ld: cannot find -llibopencv_photo
/usr/bin/ld: cannot find -llibopencv_stitching
/usr/bin/ld: cannot find -llibopencv_superres
/usr/bin/ld: cannot find -llibopencv_ts
/usr/bin/ld: cannot find -llibopencv_video
/usr/bin/ld: cannot find -llibopencv_videostab
collect2: error: ld returned 1 exit status
make: *** [Test_OpenCV01] Error 1

私の手順とチュートリアルの間で見つけられた唯一の違いは、次のとおりです。コマンドを実行すると:

pkg-config --libs opencv

これは私の出力です

/usr/local/lib/libopencv_calib3d.so /usr/local/lib/libopencv_contrib.so /usr/local/lib/libopencv_core.so /usr/local/lib/libopencv_features2d.so /usr/local/lib/libopencv_flann.so /usr/local/lib/libopencv_gpu.so /usr/local/lib/libopencv_highgui.so /usr/local/lib/libopencv_imgproc.so /usr/local/lib/libopencv_legacy.so /usr/local/lib/libopencv_ml.so /usr/local/lib/libopencv_nonfree.so /usr/local/lib/libopencv_objdetect.so /usr/local/lib/libopencv_photo.so /usr/local/lib/libopencv_stitching.so /usr/local/lib/libopencv_superres.so /usr/local/lib/libopencv_ts.so /usr/local/lib/libopencv_video.so /usr/local/lib/libopencv_videostab.so 

ライブラリ名が少し違うので、私が持っている名前を使用します。

Eclipseから自動的に実行されたコマンドラインは

g++ -L/usr/local/lib/ -o "Test_OpenCV01"  ./src/main.o   -llibopencv_calib3d -llibopencv_contrib -llibopencv_core  -llibopencv_features2d  -llibopencv_flann -llibopencv_gpu -llibopencv_highgui -llibopencv_imgproc -llibopencv_legacy -llibopencv_ml -llibopencv_nonfree -llibopencv_objdetect -llibopencv_photo -llibopencv_stitching -llibopencv_superres -llibopencv_ts -llibopencv_video -llibopencv_videostab

ライブラリパスが共有ライブラリがある場所である /usr/local/lib/ であることを明確に指定していますが、エラーでは /usr/bin/ld に lib ファイルが見つからないことが示されています

ps私は両方を試しました

1) 共有ライブラリを使用するための OpenCV の構成:

sudo gedit /etc/ld.so.conf.d/opencv.conf

ファイルの最後に次の行を追加します

/usr/local/lib 保存後の実行中の sudo ldconfig。

2) コマンドを実行する

export LD_LIBRARY_PATH=/usr/local/lib

私も追加しました

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig export PKG_CONFIG_PATH

/etc/bash.bashrc ファイルの末尾まで。

高度なご協力ありがとうございます。

4

2 に答える 2

1

リンク手順でライブラリが正しく指定されていません。ライブラリが の場合、libfoo.soと言う必要があります-lfoo

交換

g++ -L/usr/local/lib/ -o "Test_OpenCV01"  ./src/main.o   -llibopencv_calib3d -llibopencv_contrib -llibopencv_core  -llibopencv_features2d  -llibopencv_flann -llibopencv_gpu -llibopencv_highgui -llibopencv_imgproc -llibopencv_legacy -llibopencv_ml -llibopencv_nonfree -llibopencv_objdetect -llibopencv_photo -llibopencv_stitching -llibopencv_superres -llibopencv_ts -llibopencv_video -llibopencv_videostab

g++ -L/usr/local/lib/ -o "Test_OpenCV01"  ./src/main.o   -lopencv_calib3d -lopencv_contrib -lopencv_core  -lopencv_features2d  -lopencv_flann -lopencv_gpu -lopencv_highgui -lopencv_imgproc -lopencv_legacy -lopencv_ml -lopencv_nonfree -lopencv_objdetect -lopencv_photo -lopencv_stitching -lopencv_superres -lopencv_ts -lopencv_video -lopencv_videostab

リンク オプションの詳細については、こちらをご覧ください。

于 2013-06-25T14:51:09.200 に答える
0

ファイル名は /usr/local/lib フォルダーの下の liblibopencv_core.so のようなものですが、GCC C++ リンカー ライブラリではopencv_coreに言及するだけです。ライブラリに追加する他のファイルについても同じことを行います。

于 2014-09-23T00:28:55.003 に答える