Rcutils: find_library: `LD_LIBRARY_PATH` рдЦреЛрдЬрдиреЗ рдХреЗ рдмрдЬрд╛рдп рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд▓реЛрдб рдХреА рдЧрдИ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 25 рдорд╛рд░реНрдЪ 2019  ┬╖  22рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: ros2/rcutils

рд╡рд░реНрддрдорд╛рди рдореЗрдВ, find_library рдкрд╣рд▓реЗ рд▓реЛрдб рдХрд┐рдП рдЧрдП рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдХреНрд╡реЗрд░реА рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рд╕реАрдзреЗ LD_LIBRARY_PATH рд╕рд╛рде рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреА рдЦреЛрдЬ рдореЗрдВ рдЪрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИред 3 рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдиреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ:
https://github.com/ros2/rmw_implementation/blob/32c3de1/rmw_implementation/src/functions.cpp#L77

рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдпрд╣ рдХреЛрдб рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд▓реЛрдб рдХрд┐рдП рдЧрдП рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрддрд╛ рд╣реИ, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдб рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛ рд░рдирдЯрд╛рдЗрдо рдкрд░ рдбреАрдбреАрдПрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд░реЗрдкреНрд░реЛ рдорд╛рдорд▓реЛрдВ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдирд╛, рдЖрджрд┐) рдХреЛ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЖрд░рдкреАрдПрдЯреАрдПрдЪ рдЙрдкрдпреБрдХреНрдд рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рд╣рдореНрдо, рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реЛ рд░рд╣рд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рд╢реБрд░реБрдЖрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП rcpputils::find_library_path() рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИред рдпрджрд┐ рд╣рдо рдХреЗрд╡рд▓ rcutils_load_shared_library() рдпрд╛ рдЗрд╕рдХреЗ rcpputils::SharedLibrary рд░реИрдкрд░ рдХреЛ рдПрдХ рд╕рд╛рдкреЗрдХреНрд╖ рдкрде рдХреЗ рд╕рд╛рде рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ, рддреЛ dlopen рдФрд░ LoadLibrary рдкрде рдЦреЛрдЬреЗрдВрдЧреЗ рдФрд░ рд▓реЛрдб рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗред рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдкрд╣рд▓реЗ рд╕реЗ рд▓реЛрдб рдХреА рдЧрдИ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдирд╣реАрдВ рдЦреАрдВрдЪрд╛ рдЬрд╛рдПрдЧрд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рд╕реЗ, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ RPATHs, LD_LIBRARY_PATHs, RUNPATHs, PATHs рдФрд░ рдкреНрд░реАрд▓реЛрдбреЗрдб рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рд╕рдореНрдорд╛рдирд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рд╕реАрд╕реА @EricCousineau-TRI @wieset @clalancetteред

рд╕рднреА 22 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдпрд╣рд╛рдБ рд▓рд┐рдирдХреНрд╕ рдкрд░ рдПрдХ рдХрд╛рд░реНрдпрд╢реАрд▓ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рд╣реИ:
https://github.com/EricCousineau-TRI/rcpputils/commit/b66a3d9e02ace44e6c3b6022eeb3447b121d3311

рдбреНрд░реЗрдХ рд╕реНрд░реЛрдд рд╕реЗ рдкрд╛рд▓рдирд╛:
https://github.com/RobotLocomotion/drake/blob/4c6246197/common/find_loaded_library.cc

рдЗрд╕ рдмрд╛рдЬрд╝рд▓ рд░реЗрдкреНрд░реЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рдкрд░, рдореИрдВ рдЕрдм рдпрд╛ рддреЛ рд▓рд┐рдВрдХрд┐рдВрдЧ рд╕рдордп рдкрд░ рдЖрд░рдПрдордбрдмреНрд▓реНрдпреВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдпрд╛ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдХреЛ рд╕реНрдердЧрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ:
https://github.com/EricCousineau-TRI/repro/commit/cea11026722b340580257564dc49cb0f59b55178

@ рдбрд┐рд░реНрдХ-рдереЙрдорд╕ рдореБрдЭреЗ рдпрд╣ рдмреЗрд╣рдж рдЙрдкрдпреЛрдЧреА рд▓рдЧреЗрдЧрд╛ред рдХреНрдпрд╛ рдореИрдВ рдкреВрдЫ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдХреНрдпрд╛ (рдпрджрд┐ рдХреЛрдИ рд╣реЛ) рд╕рдмреВрдд рдЖрдкрдХреЛ рдЗрд╕ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? :рдбреА

рдХреНрдпрд╛ рдореИрдВ рдкреВрдЫ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдХреНрдпрд╛ (рдпрджрд┐ рдХреЛрдИ рд╣реЛ) рд╕рдмреВрдд рдЖрдкрдХреЛ рдЗрд╕ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рдЪреВрдВрдХрд┐ рдбрд┐рд╕реНрдЯреНрд░реЛ рд╣реЛрдиреЗ рдХрд╛ рд▓рдХреНрд╖реНрдп рд╕реНрдерд┐рд░рддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рд╣реИ рдмреИрдХрдкреЛрд░реНрдЯ рдХреЗрд╡рд▓ рдмрдЧ рдлрд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдП рд╣реИрдВред рдПрдиреНрд╣рд╛рдВрд╕рдореЗрдВрдЯреНрд╕ рдХреЛ рдЕрдЧрд▓реЗ рдбрд┐рд╕реНрдЯреНрд░реЛ рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдбреИрд╢рд┐рдВрдЧ рдХреЗ рдкрд╣рд▓реЗ рдкрд░реАрдХреНрд╖рдг рдкреИрдХреЗрдЬ рдЕрдкреНрд░реИрд▓ рдХреЗ рдкрд╣рд▓реЗ рд╕рдкреНрддрд╛рд╣ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реЛрдиреЗ рдХрд╛ рд▓рдХреНрд╖реНрдп рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИред

рдР, рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИред https://github.com/ros2/rcpputils/issues/3 рдХреЗ рд╡рд┐рд▓рдп рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░реЗрдВрдЧреЗ, рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рджреЗрд╡ рд╢рд╛рдЦрд╛ рдХреЗ рдЦрд┐рд▓рд╛рдл рджрд░реНрдЬ рдХрд░реЗрдВрдЧреЗред рдзрдиреНрдпрд╡рд╛рдж!

рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ ros2 рдиреЛрдб рд╣реИ рдЬрд┐рд╕реЗ setcap рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реЗрдЯ рдХреА рдЧрдИ рдХреНрд╖рдорддрд╛рдУрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬреЛ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рджреМрд░рд╛рди LD_LIBRARY_PATH рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рд╣рдо рд╕рд╛рдЭрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдЗрдирд░реА рдореЗрдВ RPATH рд╕реЗрдЯ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЪреВрдВрдХрд┐ find_library_path LD_LIBRARY_PATH рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рдиреЛрдб рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ

terminate called after throwing an instance of 'rclcpp::exceptions::RCLError'
  what():  failed to initialized rcl init options: failed to find shared library of rmw implementation. Searched rmw_fastrtps_cpp, at /tmp/binarydeb/ros-eloquent-rmw-implementation-0.8.2/src/functions.cpp:130, at /tmp/binarydeb/ros-eloquent-rcl-0.8.3/src/rcl/init_options.c:55

рдЕрдЧрд░ рдореИрдВ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдордЭреВрдВ, рддреЛ @EricCousineau-TRI рдХреЗ рдкреНрд░рд╕реНрддрд╛рд╡ рд╕реЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдЕрдЧрд▓реА рд░рд┐рд▓реАрдЬ рдореЗрдВ рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдкрд╛рдиреЗ рдХрд╛ рдХреЛрдИ рдореМрдХрд╛? рдпрд╛ рдХрд╛рдордХрд╛рдЬ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕реБрдЭрд╛рд╡?

@ EricCousineau-TRI рдХреНрдпрд╛ рдЖрдк рдЗрд╕ рдкрд░ рдкреБрдирд░рд╛рд╡реГрддрд┐ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ?

рдЕрдЧрд░ рдореИрдВ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдордЭреВрдВ, рддреЛ @EricCousineau-TRI рдХреЗ рдкреНрд░рд╕реНрддрд╛рд╡ рд╕реЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

@wieset рдпрджрд┐ рдЖрдк рдЬрд┐рд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рдЦреЛрдЬрдиреЗ/рд▓реЛрдб рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд╡рд╣ рдкрд╣рд▓реЗ рд╕реЗ рд▓реЛрдб рдирд╣реАрдВ рд╣реИ, рддреЛ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХреИрд╕реЗ рдХрд░реЗрдЧрд╛?

@ivanpauno рд╢рд╛рдпрдж рдирд┐рдХрдЯ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдХрднреА рднреА рдирд╣реАрдВ (~ 6mo рд╕реЗ 1yr), рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ :(

@ рдбрд┐рд░реНрдХ-рдереЙрдорд╕ рдореИрдВрдиреЗ @ рдПрд░рд┐рдХрдХреВрд╕рд┐рдиреЛ-рдЯреАрдЖрд░рдЖрдИ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЛрдб рдХреЛ рджреЗрдЦрд╛ рдФрд░ рдЖрдк рд╕рд╣реА рд╣реИрдВ, рдЕрдЧрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдкрд╣рд▓реЗ рд╕реЗ рд▓реЛрдб рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ рддреЛ рдпрд╣ рдореЗрд░реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рдмрд┐рд▓реНрдб рдЯрд╛рдЗрдо рдкрд░ рд▓рд┐рдВрдХ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рддрд╛рдХрд┐ рдпрд╣ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ рд▓реЛрдб рд╣реЛ рдЬрд╛рдП?

рд╣рд╛рд▓рд╛рдВрдХрд┐, рд░рди рдЯрд╛рдЗрдо рдкрд░ рд▓реЛрдбрд┐рдВрдЧ рдХреЛ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рджреЛ рд╡рд┐рдХрд▓реНрдк рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ: рдпрд╛ рддреЛ RPATH рдЦреЛрдЬрдирд╛ рд╣реЛрдЧрд╛, рдЬрд┐рд╕реЗ рдореИрдВ CMAKE_INSTALL_RPATH рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реЗрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдпрд╛ LD_LIBRARY_PATH рдмрдЬрд╛рдп рдХрд┐рд╕реА рдЕрдиреНрдп рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ RMW_LIBRARY_PATH ред рдореИрдВрдиреЗ рдЙрди рджреЛрдиреЛрдВ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ https://github.com/ros2/rcpputils/issues/40 рдореЗрдВ рдХрд┐рдпрд╛ рд╣реИред

@wieset рдЗрд╕ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП rpath рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдирд┐рд░реНрдорд╛рдг рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рд▓рдЧрддрд╛ рд╣реИред

@ рдбрд┐рд░реНрдХ-рдереЙрдорд╕ рд╕рд╣рдордд рд╣реБрдП, рдФрд░ рдореИрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдиреНрдп рд╕рднреА рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП RPATH рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рд▓реЗрдХрд┐рди рдпрд╣ рдореБрдЭреЗ рдЗрд╕ рддрдереНрдп рдХреЗ рдЖрд╕рдкрд╛рд╕ рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рд╣реИ рдХрд┐ рдЖрд░рдПрдордбрдмреНрд▓реНрдпреВ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд▓рд┐рдП find_library_path() рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╡рд╣рд╛рдВ рдирд╣реАрдВ рджрд┐рдЦрддрд╛ рд╣реИред рдпрд╛ рдХреНрдпрд╛ рдореИрдВ рдХреБрдЫ рди рдХреБрдЫ рднреВрд▓ рд░рд╣рд╛ рд╣реВрдВ?

рд▓реЗрдХрд┐рди рдпрд╣ рдореБрдЭреЗ рдЗрд╕ рддрдереНрдп рдХреЗ рдЖрд╕рдкрд╛рд╕ рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рд╣реИ рдХрд┐ рдЖрд░рдЯреАрдбрдмреНрд▓реНрдпреВ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд▓рд┐рдП find_library_path() рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╡рд╣рд╛рдВ рдирд╣реАрдВ рджрд┐рдЦрддрд╛ рд╣реИред

рдЖрдк рдареАрдХ рдХрд╣ рд░рд╣реЗ рд╣реИрдВред рдореИрдВ рдЗрд╕ рдЯрд┐рдХрдЯ рдкрд░ рд╕рдВрджрд░реНрдн рд╕реЗ рдЪреВрдХ рдЧрдпрд╛ред

рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдкреЗрд╢ рдХрд░рдирд╛ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдпрд╛ рдпрджрд┐ рдЖрдкрдХреЛ рдореМрдЬреВрджрд╛ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдХреЛ рд░реВрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд▓рд╛рддреЗ рд╕рдордп рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ, LD_LIBRARY_PATH рдХреЛ setcap / setuid рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдХреЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдирджреЗрдЦрд╛ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рд╕реЗрдЯ рдХрд░рдирд╛ рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдорджрдж рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рджреЗрдЦреЗрдВ http://man7.org/linux/man-pages/man8/ld.so.8.html

рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╕реБрд░рдХреНрд╖рд╛ рд╕реАрдорд╛ рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП ROS_LIBRARY_PATH рдЬреИрд╕реЗ рдирдП env var рдХреЛ рдкреЗрд╢ рдХрд░рдирд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИред ld рдХреЗрд╡рд▓ рдЗрд╕реЗ рдлрд╝рд┐рд▓реНрдЯрд░ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рд╣реИ рдФрд░ рдпрд╣ рд╕реБрд░рдХреНрд╖рд╛ рдХрд╛рд░рдгреЛрдВ рд╕реЗ LD_LIBRARY_PATH рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рддрд╛ рд╣реИред

рдХреГрдкрдпрд╛ рдЗрд╕ рд╡реГрджреНрдзрд┐ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдкреАрдЖрд░ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВ (рдЬреИрд╕рд╛ рдХрд┐ "рд╕рд╣рд╛рдпрддрд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ" рд▓реЗрдмрд▓ рджреНрд╡рд╛рд░рд╛ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ)ред

рдЗрд╕ рдкрд░ рдЧреМрд░ рдХрд░реЗрдВрдЧреЗ!

https://github.com/ros2/rcpputils/pull/44 . рдкрд░ рдПрдХ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдмрдирд╛рдпрд╛ рдЧрдпрд╛

FWIW @hidmic , @iantheengineer , рдФрд░ рдореИрдВ рдЯреАрдЖрд░рдЖрдИ рдореЗрдВ рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдЗрд╕ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдкрд╣рд▓реЗ рд╣рдорд╛рд░реЗ рдЖрдВрддрд░рд┐рдХ рдЙрдкрдпреЛрдЧ рдХреА рдУрд░, рдлрд┐рд░ рдбреНрд░реЗрдХ рдЬреИрд╕реА рдЪреАрдЬреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХреАрдХрд░рдг рдХреА рдУрд░ред

рд╣рдореНрдо, рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реЛ рд░рд╣рд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рд╢реБрд░реБрдЖрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП rcpputils::find_library_path() рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИред рдпрджрд┐ рд╣рдо рдХреЗрд╡рд▓ rcutils_load_shared_library() рдпрд╛ рдЗрд╕рдХреЗ rcpputils::SharedLibrary рд░реИрдкрд░ рдХреЛ рдПрдХ рд╕рд╛рдкреЗрдХреНрд╖ рдкрде рдХреЗ рд╕рд╛рде рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ, рддреЛ dlopen рдФрд░ LoadLibrary рдкрде рдЦреЛрдЬреЗрдВрдЧреЗ рдФрд░ рд▓реЛрдб рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗред рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдкрд╣рд▓реЗ рд╕реЗ рд▓реЛрдб рдХреА рдЧрдИ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдирд╣реАрдВ рдЦреАрдВрдЪрд╛ рдЬрд╛рдПрдЧрд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рд╕реЗ, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ RPATHs, LD_LIBRARY_PATHs, RUNPATHs, PATHs рдФрд░ рдкреНрд░реАрд▓реЛрдбреЗрдб рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рд╕рдореНрдорд╛рдирд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рд╕реАрд╕реА @EricCousineau-TRI @wieset @clalancetteред

рдареАрдХ рд╣реИ, рдЗрд╕ рдкрд░ рдкрд╣рд▓реА рдмрд╛рд░ рд╣рдорд▓рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП #320 рдФрд░ рдХрдиреЗрдХреНрдЯреЗрдб рдкреАрдЖрд░ рджреЗрдЦреЗрдВред @wieset рдЗрд╕реЗ (рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рд░реВрдк рд╕реЗ) рдЖрдкрдХреЗ рдореБрджреНрджреЛрдВ рдХреЛ рднреА рд╣рд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпреЗ рдкрд░рд┐рд╡рд░реНрддрди rcpputils::find_library_path рдЕрдкреНрд░рдЪрд▓рд┐рдд рд╣реИрдВ (рдХреЛрд░ рдкреИрдХреЗрдЬ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП)ред

@hidmic рдЕрдм рдЬрдмрдХрд┐ рд╣рдо #320 рдкрд░ рдкрд╣реБрдВрдЪ рдЧрдП рд╣реИрдВ рдФрд░ рджреЛрд╕реНрддреЛрдВ, рдХреНрдпрд╛ рд╣рдо рдЗрд╕реЗ рдмрдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЯрдХреНрдХрд░ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж @hidmic , рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдореБрдЭреЗ рд╡рд╣рд╛рдВ рдЖрдзрд╛ рдХрд░ рджреЗрддрд╛ рд╣реИред RUNPATH рдЕрднреА рднреА рдареАрдХ рд╕реЗ рднрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред рдореИрдВ https://github.com/ros2/rcpputils/pull/44 рдореЗрдВ @clalancet рдХреЗ рд╕рд╛рде рдЪрд░реНрдЪрд╛ рдЬрд╛рд░реА ред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

Barry-Xu-2018 picture Barry-Xu-2018  ┬╖  13рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

windelbouwman picture windelbouwman  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

alswl picture alswl  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

makoConstruct picture makoConstruct  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

orschiro picture orschiro  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ