我正在努力应对最新的Redhawk SDR 1.9安装说明,了解如何让它在Ubuntu 13.10上运行(我也试过Mint 15无济于事)。具体来说,我注意到两件事:
对于framework-GPP / python,它说要运行 make 但是这样做时它表示“all”无关。如果它没有做任何事情,我不确定它的运行点是什么;这让我相信当我./reconf和./configure时出现问题,但我发现没有错误。
对于framework-bulkioInterfaces, make 在bulkio_out_port.cpp上失败:error: 'pushSRI' was not declared in this scope and no declarations were found by argument-dependent lookup at the point of instantiation[-fpermissive]
。
我已经搜遍了所有人,但看起来并没有其他人遇到这些问题。
是否有人在Ubuntu(或只是基于Debian的发行版)上编译和安装1.9时有不同的/修改过的安装说明?
答案 0 :(得分:0)
有同样的问题。降级到GCC-4.6和libboost1.49
答案 1 :(得分:0)
目前REDHAWK支持Ubuntu 12.04 LTS。可以在此处找到安装说明:http://redhawksdr.github.io/Documentation/mainap5.html
在未经测试的操作系统(如Mint 15或Ubuntu 13.10)上安装时,可能需要或可能没有其他步骤或冲突。
回答您的具体问题:
运行make for GPP项目时不会发生任何事情。您可以选择跳过该步骤直接进入“sudo make install”。
这是特定于Ubuntu 13.10的问题,特别是因为它有一个更新版本的GCC,比Ubuntu 12.04和CentOS 5& 6.要解决此问题,请尝试在调用configure时包含“-fpermissive”标志来定义CXXFLAGS变量,该标志告诉编译器“将有关不符合代码的某些诊断程序从错误降级为警告”。您可以在以下一行中执行此操作:
CPPFLAGS =“ - fpermissive”./ configure
然而,这应该可以解决这个问题,请记住,在13.10上运行REDHAWK是未经测试且不受支持的。如果您需要基于debian的安装,我建议使用12.04 LTS。
答案 2 :(得分:0)
对于您的第一个问题:编写GPP的Python会在运行之前自动将您的python脚本编译为字节代码文件(.pyc)。由于这是在执行之前由Python解释器完成的,因此make阶段不会产生任何结果。
为了解决Ubuntu 13.10问题,特别是gcc 4.7+和boost1.50 +,必须将一系列补丁应用于framework-core和framework-bulkioInterfaces。这些补丁已应用于https://github.com/VenturaSolutionsInc/framework-bulkioInterfaces https://github.com/VenturaSolutionsInc/framework-core
已经发出一组拉取请求,将这些更改推回基线。
对bulkioInterfaces要求-fpermissive的错误是由于GCC不再对基类范围执行额外的非限定查找或过去执行的非限定模板函数查找的更改。见http://gcc.gnu.org/gcc-4.7/porting_to.html
在libsrc / cpp / bulkio_out_port.cpp中,必须更改对pushSRI(currentSRIs [streamID] .first)的所有引用,以显式调用“this”,从而产生this-&gt; pushSRI(currentSRIs [streamID] .first); < / p>
boost和框架的问题是由于boost :: filesystem v3的boost :: filesystem v2的弃用和删除。两者之间的变化可以在这里找到:http://www.boost.org/doc/libs/1_49_0/libs/filesystem/v2/doc/index.htm。修补后的框架可以从以下网址下载:https://github.com/VenturaSolutionsInc/framework-core.git
最后,Ubuntu 13.X中boost 1.5+的默认安装位置已更改,默认情况下configure将找不到它。如果你在上面引用的git项目中读到Ubuntu.md,你会看到我包含了标志--with-boost-libdir = / usr / lib / x86_64-linux-gnu来配置。这告诉autotools在哪里可以找到boost 1.5库。