在不同的库中,我已经多次遇到过这个问题。colcon build运行良好,但在启动时ros2抱怨没有找到共享对象。除了设置$LD_LIBRARY_PATH env变量之外,是否还有更好的方法来添加路径?
我将cmake中的外部库(例如:lib手电筒)链接为
target_link_libraries(some_proj
${TORCH_LIBRARIES}
)
install(TARGETS some_proj
EXPORT export_${PROJECT_NAME}
ARCHIVE DESTINATION lib
LIBRARY DESTINATION lib
RUNTIME DESTINATION lib/${PROJECT_NAME}
)
install(DIRECTORY
launch
DESTINATION share/${PROJECT_NAME}/
)
ament_package()发布于 2022-09-29 10:06:22
将RPATH设置为@Jesper said有效。还可以看到这个answer
显然,在安装包时,RPATH会被剥离。cmake中的以下设置将保留RPATH
在构建任何目标(可执行文件/lib)之前,在cmake中设置它
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)或将其设置为特定目标。
set_target_properties(${some_target} PROPERTIES INSTALL_RPATH_USE_LINK_PATH TRUE)https://stackoverflow.com/questions/73885228
复制相似问题