发现一个ros2动态链接库的处理方法
在一个ROS2工作空间下,如果我在某个功能包的CMakeLists.txt
中添加如下命令:
# 将so库安装在install的lib文件夹中
install(FILES lib/libcanHandle.so
DESTINATION lib
)
那么我在使用colcon build
编译之后,并且source
当前工作空间,然后echo $LD_LIBRARY_PATH
时,就会发现LD_LIBRARY_PATH
的路径包含了该功能包对应的lib
文件夹路径。
echo $LD_LIBRARY_PATH
/home/xxx/Program/dev_ws/install/localization/lib:/home/xxx/Program/dev_ws/install/interfaces/lib:/opt/ros/foxy/opt/yaml_cpp_vendor/lib:/opt/ros/foxy/opt/rviz_ogre_vendor/lib:/opt/ros/foxy/lib/x86_64-linux-gnu:/opt/ros/foxy/lib
而如果没有加install
的这个命令,LD_LIBRARY_PATH
变量里就没有该路径了。
echo $LD_LIBRARY_PATH
/home/xxx/Program/dev_ws/install/interfaces/lib:/opt/ros/foxy/opt/yaml_cpp_vendor/lib:/opt/ros/foxy/opt/rviz_ogre_vendor/lib:/opt/ros/foxy/lib/x86_64-linux-gnu:/opt/ros/foxy/lib