ディレクトリ
注意:元は容易ではない、再現し、支援のためのソースと著者、感謝を示すために必ずしてください!
OpenCVのバージョンの結果は誤差を開始します
今日は非常に興味深いエラーに会いました。
第12章「視覚的SLAM 14のストレス」の手順をコンパイルするとき、それは、ある方法は、コンパイラがエラー「未定義のリファレンス」を報告しました。プログラムが使用するDBoW3
ライブラリを、およびライブラリが依存しているOpenCV
の。DBoW3
このライブラリをコンパイルした後、スタティックリンクライブラリを生成しますし、中に設置し/usr/local/lib
、次のパス。
未定義の参照エラーが私を作った私は、これが問題リンクライブラリです実現します。いくつかの苦渋の後、理由はこれで見つかりました。私の仮想マシンは、最新のインストールOpenCV 4.1.1
バージョンを、だけでなく、インストールされROS
ますが、ROS
そこに来OpenCV 3.3.1
リリースが。コンパイル時DBoW3
の時間ライブラリ、私はどのような理由で、知らないcmake
と検索3.3.1
バージョンOpenCV
なので、DBoW3
リンクは、リンクライブラリで3.3.1
のバージョンOpenCV
動的ライブラリ。しかし、引用された手順の第12章では、ある4.1.1
バージョンのOpenCV
ヘッダファイルなので、リンクに行くDBoW3
際の基準の自然な誇張未定義エラーの静的ライブラリ。
その後、修正使用して、ファイルを再コンパイルしてインストールし、その依存関係としてライブラリを、問題が解決されます!DBoW3
CMakeLists.txt
OpenCV 4.1.1
DBoW3
ところで、いくつかのより長いったらしい、私がチェックした変数の内容を、それが道を指し示すことがわかったと、これら2つのパスが何もありませんしながら、文書、逆に、OpenCVのインストールを提供し、ファイルのファイルをパスの下に。だから、あなただけの必要なライブラリで指定されたファイル前述の値のパスを。このように、OpenCVの4.1.1バージョンを確認することが可能です。cmake
CMAKE_MODULE_PATH
/usr/local/lib/cmake
/usr/lib/cmake
FindOpenCV.cmake
OpenCVConfig.cmake
/usr/local/lib/cmake/opencv4/
DBoW3
CMakeLists.txt
OpenCV_DIR
cmake