如何在 ros 包中使用 sdk(非 ros header/lib/binaries)

How to use a sdk (non-ros header/lib/binaries) in ros package?

本文关键字:ros header lib binaries sdk 包中使      更新时间:2023-10-16

我正在尝试使用相机 sdk 在 ros 中编写相机流发布者。

它不是 uvc 相机,所以我无法使用 usb_cam 或其他类似节点来访问相机流。

我已经有一个由ASICamera.h/libASICamera.a/libASICamera.so组成的sdk,并且我已经成功地运行了它。

但是现在我不知道如何在 ros 节点中运行它。

然后我将头文件添加到包/包含目录中

并将"ASICamera.h"#include 发布方节点。


现在,当我使用catkin_make时,它会报告:

make[2]: *** [asi_converter_real/CMakeFiles/asi_converter_real.dir/src/asi_converter_real.cpp.o] Error 1
make[1]: *** [asi_converter_real/CMakeFiles/asi_converter_real.dir/all] Error 2

我认为原因是我没有将 .a 和 .so 添加到发布者节点中。

但我不知道该怎么做


在包装.xml中,似乎

build_depend和run_depend标签只能访问 ros 内置的静态/动态库,如何在 ros 节点中使用我自己的 .a 和 .so?

检查你的 CMakeLists.txt。更改包含目录:

include_directories(include
  ${catkin_INCLUDE_DIRS}
  /Path/To/Include/Dirs
)

设置库路径:

link_directories(/Path/To/Libs)

并添加您的库:

link_libraries (library_names)