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

标签 c++ c opencv camera ros

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

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

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

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

然后我将头文件添加到 package/include 目录中

并将#include "ASICamera.h"放入发布者节点。


现在当我使用 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 添加到发布者节点中。

但是我不知道该怎么做


在package.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)

关于c++ - 如何在ros包中使用sdk(非ros header/lib/binaries)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27105573/

相关文章:

c - 使用指令内在函数在 Hexagon DSP 中启用 HVX SIMD

c++ - 无法在 opencv 3 中读取 mp4 文件

c++ - 使用 g4 压缩压缩输出 tiff

opencv - opencv中的矩阵类型转换

c++ - 为什么我不能 push_back 到 const 元素的 vector ?

c++ - 如果我传递的只是一个字符,我应该传递一个常量引用吗?

c# - CallNamedPipe & NamedPipeServerStream,访问被拒绝?

具有惰性 key 生成的 C++ 比较器函数

c - 我应该在这个 C 代码中添加什么来打开多个文件?

c - 为什么 UINT_MAX + 3 总是等于 2?