In CMake I build Rust library with add_custom_target()
and link C++ executable to it.
I create imported library with:
add_library( rustlib UNKNOWN IMPORTED )
set_target_properties( rustlib PROPERTIES
IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/rustlib/target/release/${CMAKE_STATIC_LIBRARY_PREFIX}rustlib${CMAKE_SHARED_LIBRARY_SUFFIX} )
And for C++ executable target:
target_link_libraries( executabe rustlib )
And I set RUNPATH with:
list( PREPEND CMAKE_INSTALL_RPATH "${QT6_INSTALL_PREFIX}/lib:$ORIGIN/../lib" )
set( CMAKE_BUILD_WITH_INSTALL_RPATH TRUE )
readelf -a executable | grep -i librustlib
shows me:
0x0000000000000001 (NEEDED) Shared library: [/home/myproject/rustlib/target/release/librustlib.so]
This works in development environment. But relocating to other machine failed to start, so my question is how can I remove full-path from elf binary for this Rust library?