1

外部ライブラリを使用してプロジェクトをビルドしようとしていますが、システムは壊れている usr/lib 内のライブラリを使用する必要があると考え続けています。代わりに、/home/CMake-hdf5-1.8.18/build/HDF5-1.8.18-Linux/HDF_Group/HDF5/1.8.18/include というアドレス内にビルドされたライブラリを使用したいと考えています。これは CMakeLists.txt です。私の意図した解決策は、#Add hdf5 ライブラリの下の 2 行です。

cmake_minimum_required(VERSION 2.8.3)
project(scan_to_cloud_converter)

# List C++ dependencies on ros packages
set( ROS_CXX_DEPENDENCIES
  roscpp
  pcl_ros
  pcl_conversions)

# Find catkin and all required ROS components
find_package(catkin REQUIRED COMPONENTS ${ROS_CXX_DEPENDENCIES})
find_package(PCL REQUIRED QUIET)

# Set include directories
include_directories(include ${catkin_INCLUDE_DIRS} ${PCL_INCLUDE_DIRS})

# Declare info that other packages need to import library generated here
catkin_package( )

#Create node
add_executable( scan_to_cloud_converter_node
src/scan_to_cloud_converter_node.cpp
src/scan_to_cloud_converter.cpp )

#Add hdf5 library
link_directories(/home/CMake-hdf5-1.8.18/build/HDF5-1.8.18-Linux/HDF_Group/HDF5/1.8.18/include)
target_link_libraries(scan_to_cloud_converter_node libhdf5)

# No need to link against pcl (using header only libraries)
target_link_libraries( scan_to_cloud_converter_node ${catkin_LIBRARIES})

add_dependencies(scan_to_cloud_converter_node ${catkin_EXPORTED_TARGETS})

#Install node
install(TARGETS scan_to_cloud_converter_node
RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} )

ただし、これはまだ表示されるエラーメッセージです。

make[2]: *** No rule to make target '/usr/lib/x86_64-linux-gnu/hdf5/serial/lib/libhdf5.so', needed by '/home/catkin_ws/devel/lib/scan_to_cloud_converter/scan_to_cloud_converter_node'.  Stop.

このエラーについて調査しましたが、これはまだ /usr/lib を調べているためであり、シンボリック リンクが壊れているためライブラリ libhdf5.so が存在しないためです。では、代わりにそのライブラリの他のアドレスを調べるにはどうすればよいでしょうか? このエラーを取り除くための助けをいただければ幸いです

4

1 に答える 1