这可能真的很愚蠢,但我在尝试使用cmake编译某些代码模块时面临以下错误
acg_localizer_active_search.cc:(.text+0x43c6): undefined reference to
`ANNkd_tree::ANNkd_tree(float**, int, int, int, ANNsplitRule)'
acg_localizer_active_search.cc:(.text+0x4441): undefined reference to
`ANNkd_tree::ANNkd_tree(float**, int, int, int, ANNsplitRule)'
我已经被困了一段时间,在错误后解决错误并且在这里结束了。请帮我。提前致谢
很抱歉没有添加代码。它是大约2000行,我不知道在哪里找到此错误。它是软件包的一部分,名为acg_localizer。
答案 0 :(得分:1)
这是一个链接时间错误。在链接命令中指定的任何库和目标文件中都找不到方法ANNkd_tree::ANNkd_tree(float**, int, int, int, ANNsplitRule)
,尽管它已被引用。
您必须找出它的定义位置,并确保它所定义的库位于在链接器命令行上使用它的库之后。
您可以使用nm
工具找出对象文件或库定义或使用的符号(=变量,方法)。进行man nm
(或在谷歌搜索)以了解更多信息。