Gnuradio OOT没有看到消息来源?

时间:2016-07-27 16:52:13

标签: gnuradio

尝试为Gnuradio编写OOT块时,我运行cmake ../,然后make。 make过程成功构建了一些对象,但是当它到达步骤时:

Linking CXX executable test-XXXXXXXX

存在问题:

libgnuradio-XXXXXXXX.so: undefined reference to 'YYYYYYYY'

YYYYYYYY.cc文件中定义的函数,我使用标题将其添加到块的_impl.cc。尽管与_impl.cc文件位于同一源目录中,但显然找不到此源。

Cmake明确警告不要对生成的Makefile进行任何修改,无论如何它都是一个相当复杂的makefile,所以我会犹豫是否要尝试搞乱它。还有另一种方法可以指导make在链接时包含其他来源吗?

1 个答案:

答案 0 :(得分:0)

最好的办法是查看OOT文件夹顶部的CMakeLists.txt。您很可能看到链接问题并且不满足包依赖性。 cmake find_package实用程序可用于确定系统上是否有可用的依赖项。如果你看一下主OOT文件夹下的cmake / Modules目录,应该有几个例子。 Cmake附带了许多模块,因此您可能需要它。

通过向主CMakeLists.txt文件添加一些find_package逻辑,然后吹掉构建目录并再次进行并执行" cmake ../" ;,依赖性问题应该是显而易见的。换句话说,无论libgnuradio - *。所以认为缺少必须属于系统上未安装的软件包。使用find_package将确认它,然后答案是安装它。

对于find_package示例,请查看gr-digital中的其他一些CMakeLists.txt文件。