如果在系统上检测到volk库,我一直在我们的一些内部组件中使用volk。我知道GNUHawk在SDRROOT的deps文件夹中打包了一个volk版本。我们刚刚在线提供了安装了CentOS 6.6和Redhawk 1.10.0-10的新Linux映像。以前我们一直在从源头建立gnuhawk。运行我们的自定义组件时,由于符号表已从libvolk中剥离,并且与RPM版本的gnuhawk一起打包,因此会出现符号查找错误。
围绕这个问题建议的方法是什么?我们应该使用我们自己的libvolk版本而不是使用gnuhawk libvolk创建另一个softpackage依赖项吗?
答案 0 :(得分:2)
使用与gnuhawk打包的volk共享对象不应该有任何问题,但是我必须获得更多信息以确定发生了什么。我的猜测是你可能正在编译libvolk的系统安装,然后针对可能导致符号查找问题的gnuhawk版本运行。
确保您正在编译和链接SDRROOT中的volk文件。你应该能够使用pc文件($ SDRROOT / sdr / dom / deps / gnuhawk / lib / pkgconfig / volk.pc)来设置你的CXX&使用自动工具自动LD标志
您可以使用readelf查看libvolk对象中的符号。在libvolk.so.0.0共享对象上使用readelf -s,它应该打印出符号表。然后,您可以确认相关符号丢失,并开始寻找您首先如何与该符号相关联。
您当然可以使用您的volk标题创建自己的共享对象库。共享对象。这使您可以灵活地更新volk并打破对gnuhawk的依赖。