【发布时间】:2017-03-31 04:09:17
【问题描述】:
我在 CentOS 7 上使用 REDHAWK 2.0.5。我通过 IDE 中的“实施”选项卡将共享库 (SoftPkg) 引用(例如 rh.dsp)添加到我的设备。这允许找到 rh.dsp 的头文件和库(位于 $SDRROOT/dom/deps/rh/dsp),并且设备构建没有问题。但是,当设备在沙盒中启动时,会出现错误,指出找不到 /deps/rh/dsp/dsp.spd.xml。当设备在域中启动时,域管理器提示“加载共享库时出错:libdsp.so.0: 无法打开共享对象文件:没有这样的文件或目录”。
我希望能够以与组件相同的方式将 REDHAWK 共享库与设备一起使用。
启动具有类似设置的组件没有问题。我已经在 Components 的构造方法中打印出 LD_LIBRARY_PATH,并观察到正在为我设置必要的路径。在沙盒中启动时,LD_LIBRARY_PATH 包含 $SDRROOT/dom/deps 中依赖项的路径。在域中启动时,依赖项缓存在 $SDRROOT/dev 中,并且 LD_LIBRARY_PATH 包含这些路径。
我可以通过将 $SDRROOT/dom/deps 复制到 $SDRROOT/dev/ 来让我的设备在沙盒中启动。现在可以找到 /deps/rh/dsp/dsp.spd.xml 文件。 LD_LIBRARY_PATH 现在在 $SDRROOT/dev/deps 中包含了依赖项的路径(令我惊讶的是,这也意味着看似需要的 pkgconfig 文件并未确定这些路径)。这是否意味着 $SDRROOT/dev 应该有自己的部门?为什么设备在此处而不是在 $SDRROOT/dom 中?
将 $SDRROOT/dom/deps 复制到 $SDRROOT/dev/ 是否不允许我在域中启动设备。它仍然无法打开 libdsp.so.0。
我在使用其他共享库时也遇到了同样的问题。这包括我自己的,以及我的 REDHAWK 安装中包含的“rh”共享库(blueFileLib、fftlib、RedhawkDevUtils)。
我是否遗漏了一些可以让我在设备上使用共享库的内容?还是只支持组件?
【问题讨论】:
标签: redhawksdr