1

opencv lib のビルドとインストールに成功しました。現在、アプリケーションでこれらのライブラリを使用しようとしていますが、リンク エラーが発生し続けます。私は使っている:

pkg-config --libs opencv

コマンドラインでこれを実行すると、出力が表示されます。多くのライブラリがリストされていますが、絶対パスが指定されているすべてのライブラリがリストされているわけではありません。たとえば、部分的な出力を次に示します。

libippcc_l.a libippvm_l.a tbb rt pthread m dl /usr/lib/libXext.s stdc++

アプリをビルドすると、リンク エラーが発生します。部分的な出力を次に示します。

g++: libipps_l.a: No such file or directory
g++: libippi_l.a: No such file or directory
g++: libippcv_l.a: No such file or directory
g++: libippcc_l.a: No such file or directory
g++: libippvm_l.a: No such file or directory
g++: tbb: No such file or directory
g++: rt: No such file or directory
g++: pthread: No such file or directory
g++: m: No such file or directory
g++: dl: No such file or directory
g++: stdc++: No such file or directory

リンカは、妥当と思われる絶対パスを含まないライブラリを解決できないようです。しかし、私の混乱は、 pkg-config からの出力にすべてのライブラリの絶対パスが含まれていないのはなぜですか? ビルド ラインで「pkg-config --libs opencv」を使用しない場合、インテル ipp、pthread、m、stdc++ などのライブラリが適切に解決され、リンク ラインでも指定されているため、アプリは正常にビルドされます。 as: "-lpthread -lstdc++" ... など。これらは、指定した後にリンク行に配置されます: "pkg --libs opencv"

しかし、「pkg-config --libs opencv」を使用すると、解像度が台無しになります。

コマンド ラインから「ldconfig」を実行して、libs ディレクトリ内のすべてのシンボリック リンクを更新しましたが、この問題は解決しませんでした。

どんな助けでも大歓迎です。

4

4 に答える 4

2

がそれを出力している場合pkg-config --libs opencvは、問題があります。おそらく、OpenCV の以前のインストールで問題が発生したか、十分に新しいバージョンを使用していないか、コンパイルに失敗したか、リポジトリの最新バージョンに問題がある可能性があります。

とにかく、私は Mac OS X で OpenCV 2.3.1 を使用しておりpkg-config --libs opencv、次の情報を出力しています。

-L/usr/local/lib -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_ml -lopencv_video -lopencv_features2d -lopencv_calib3d -lopencv_objdetect -lopencv_contrib -lopencv_legacy -lopencv_flann 

アプリケーションを手動でコンパイルして、他に何か問題があるかどうかを確認できます。

g++ test.cpp -o test -I/usr/local/include/opencv -I/usr/local/include  -L/usr/local/lib -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_ml -lopencv_video -lopencv_features2d -lopencv_calib3d -lopencv_objdetect -lopencv_contrib -lopencv_legacy -lopencv_flann

インストールによって、OpenCV ヘッダーとライブラリが別のディレクトリに配置されている可能性があることに注意してください。

于 2012-05-10T01:01:14.797 に答える
0

「opencv.pc」を検索してパスを見つけることができます。私にとって、パッケージは

/Applications/opencv-2.4.11/build/unix-install/

したがって、私にとって機能したコマンドは次のとおりです。

pkg-config --libs /Applications/opencv-2.4.11/build/unix-install/opencv.pc 
于 2015-09-10T02:31:01.320 に答える
0

これは、通常、私の実践では、新しい CMake または動作の悪いものによって引き起こされます :) 解決するのは非常に簡単です。手動で opencv.pc を編集し、欠落している「-l」プレフィックスを名前に追加します。それでおしまい!この修正後、他のすべての問題は解消されています。2 番目の通常の問題は、PKG_CONFIG_PATH 自体です。それをシェルの GLOBAL(!!) プロファイル スクリプトに追加し、シェルを再起動して、printenv コマンドなどで確認します。

于 2013-10-31T22:16:55.357 に答える