元のワークスペースのコードは長期間実行されていないため、再度コンパイルすると次のようにエラーが報告されます。
-- Could NOT find Boost
CMake Error at /usr/local/share/pcl-1.11/PCLConfig.cmake:59 (message):
common is required but boost was not found
Call Stack (most recent call first):
/usr/local/share/pcl-1.11/PCLConfig.cmake:354 (pcl_report_not_found)
/usr/local/share/pcl-1.11/PCLConfig.cmake:536 (find_external_library)
navxxxxxx/CMakeLists.txt:33 (find_package)
-- Configuring incomplete, errors occurred!
See also "/home/xxx/example_ws/build/CMakeFiles/CMakeOutput.log".
Makefile:2070: recipe for target 'cmake_check_build_system' failed
make: *** [cmake_check_build_system] Error 1
Invoking "make cmake_check_build_system" failed
最初のステップは、Boost がインストールされていないことを確認した後、
dpkg -S /usr/include/boost/version.hpp
boost がインストールされていることがわかり、バージョンは ; libboost1.65-dev:amd64
2
番目のステップ、PCL ライブラリが boost にリンクされていませんか? PCL-1.11 をアンインストールして再インストールしましたが、コンパイルでは問題は解決しませんでした。3 番目のステップ、cmake のバージョンが低すぎる可能性があるという投稿を見たので、3.10 から 3.24 にアップグレードしました [おそらくこのステップは必要ありません]; 再度コンパイルすると、新しいエラーが見つかりました : 、boost ライブラリの依存関係エラー レポートを
参照し
て、アイデア:Could NOT find Boost(missing:thread date_time iostreams serialization)
第4ステップ、で
/usr/local/share/pcl-1.11/PCLConfig.cmake
set(Boost_NO_BOOST_CMAKE ON)
find_package(Boost 1.55.0 ${QUIET_} COMPONENTS system filesystem date_time iostreams serialization)
set(Boost_DEBUG ON);
[おそらくこのステップは必要ありません]
ステップ 5を追加して再コンパイルすると、ターミナルに次のような多くのコードが表示されます。
Boost_LIBRARY_DIR_DEBUG =/opt/ros/melodic/lib
コマンドを順番に使用した後、/opt/ros/melodic/lib
パス内のブーストをリンクできないことが表示されます。thread date_time iostreams serialization
locate libboost_iostreams.so
locate libboost_serialization.so
locate libboost_date_time.so
locate libboost_thread.so
検索すると、システムに存在しlibboost_iostreams.so,libboost_serialization.so,libboost_date_time.so,libboost_thread.so
、パスも存在します/usr/lib/x86_64-linux-gnu
。問題は、ダイナミック ライブラリが存在し、ブースト リンクが接続できないことです。
6 番目のステップは、ブーストとダイナミック ライブラリの間にソフト リンクを確立することです。
sudo ln -s /usr/lib/x86_64-linux-gnu/libboost_date_time.a /opt/ros/melodic/lib/libboost_date_time.a
sudo ln -s /usr/lib/x86_64-linux-gnu/libboost_iostreams.so /opt/ros/melodic/lib/libboost_iostreams.so
sudo ln -s /usr/lib/x86_64-linux-gnu/libboost_thread.so /opt/ros/melodic/lib/libboost_thread.so
sudo ln -s /usr/lib/x86_64-linux-gnu/libboost_serialization.so /opt/ros/melodic/lib/libboost_serialization.so
繰り返しますがcatkin_make
、コンパイルは成功しましたが、多くの警告が表示されました。後で問題があれば、もう一度穴を埋めます。