Import an external library into a ROS node(将外部库导入ROS节点)
本文介绍了将外部库导入ROS节点的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
这是我第一次使用堆栈溢出,所以我对此还是个新手。我一直在做一个个人机器人项目,我下载了一个GitHub目录。我已经编译了它,测试了它(它工作正常),我已经生成了library.a
文件(因为我正在使用Ubuntu 16.04和Ros Kinetic)。我不知道的是,为了在ROS节点CPP文件上加载通信功能,我必须向CMakeLists.txt
文件添加什么。
我对CMakeLists.txt
文件编译的实际描述如下:
...
add_executable(test_node src/test_node.cpp)
add_dependencies(test_node ${catkin_EXPORTED_TARGETS})
target_link_libraries(test_node ${catkin_LIBRARIES})
...
我知道如果TARGET_LINK_LIBRARY库是*.so
文件,我必须在该库上添加库,但它不是。我应该向CMakeLists.txt
文件添加什么才能将库函数加载到我的ROS节点?
推荐答案
您的答案基于函数ADD_LIBRARY()
请参阅此示例块:
add_library(library_name STATIC IMPORTED)
set_target_properties(library_name PROPERTIES IMPORTED_LOCATION path/to/your/lib.a)
您可以使用以下命令继续添加此库:
target_link_libraries(your_target library_name)
但不要忘记将此静态库包含文件添加到目标。
该问题可通过以下代码解决:
...
find_package(Threads)
add_library(github_library STATIC IMPORTED GLOBAL)
set_target_properties(my_library PROPERTIES IMPORTED_LOCATION
my_library_directory/my_library.a)
...
target_link_libraries(my_cpp_ros_node ${catkin_LIBRARIES} my_library ${CMAKE_THREAD_LIBS_INIT})
...
这篇关于将外部库导入ROS节点的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:将外部库导入ROS节点


基础教程推荐
猜你喜欢
- C++,'if' 表达式中的变量声明 2021-01-01
- 运算符重载的基本规则和习语是什么? 2022-10-31
- 设计字符串本地化的最佳方法 2022-01-01
- 调用std::Package_TASK::Get_Future()时可能出现争用情况 2022-12-17
- C++ 程序在执行 std::string 分配时总是崩溃 2022-01-01
- 如何定义双括号/双迭代器运算符,类似于向量的向量? 2022-01-01
- 什么是T&&(双与号)在 C++11 中是什么意思? 2022-11-04
- 您如何将 CreateThread 用于属于类成员的函数? 2021-01-01
- 如何在 C++ 中处理或避免堆栈溢出 2022-01-01
- C++ 标准:取消引用 NULL 指针以获取引用? 2021-01-01