AWU 2025.02 runtime: Could not load library dlopen error
I used
$ colcon build --cmake-args -DBUILD_TESTING=Off -DCMAKE_BUILD_TYPE=Release
and run the logging_simulator and then found:
component_container_mt-62] [ERROR 1753758887.459082450] [perception.traffic_light_recognition.camera7.traffic_light_node_container]: Failed to load library: Could not load library dlopen error: libautoware_tensorrt_yolox_gpu_preprocess.so: cannot open shared object file: No such file or directory, at ./src/shared_library.c:99 (on_load_node() at /home/aga_pc1a/caret-v0.6.2/src/ros2/rclcpp/rclcpp_components/src/component_manager.cpp:278)
This is due to libautoware_tensorrt_yolox_gpu_preprocess.so is not in install/autoware_tensorrt_yolox/lib/
A quick fix can be:
$ cp build/autoware_tensorrt_yolox/libautoware_tensorrt_yolox_gpu_preprocess.so install/autoware_tensorrt_yolox/lib/libautoware_tensorrt_yolox_gpu_preprocess.so
The root cause is because lack install() after use cuda_add_library() in autoware/src/universe/autoware.universe/perception/autoware_tensorrt_yolox/CMakeLists.txt
so we need to apply diff
@@ cuda_add_library(${PROJECT_NAME}_gpu_preprocess SHARED src/preprocess.cu ) +
-
---------- NEW: ensure the GPU-preprocess .so is installed ----------
- install(TARGETS ${PROJECT_NAME}_gpu_preprocess
-
LIBRARY DESTINATION lib) -
---------------------------------------------------------------------
- target_include_directories(${PROJECT_NAME}_gpu_preprocess PUBLIC <BUILD_INTERFACE:{CMAKE_CURRENT_SOURCE_DIR}/include> <INSTALL_INTERFACE:include/{PROJECT_NAME}> )