0

这可能真的很愚蠢,但是我在尝试使用 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)'
  1. 请帮助我理解这个未定义的参考错误是什么意思。
  2. 提到的错误行“.text+0x...”是无法理解的。我怎样才能找到错误。

我已经被困了很长一段时间,错误地解决了一个又一个错误,并最终来到了这里。请帮我。提前致谢

抱歉没有添加代码。它大约有 2000 行,不确定在哪里找到此错误。它是软件包的一部分,称为 acg_localizer。

4

1 回答 1

1

那是链接时间错误。ANNkd_tree::ANNkd_tree(float**, int, int, int, ANNsplitRule)在链接命令中指定的任何库和目标文件中都找不到该方法,尽管它已被引用。

您必须找出它的定义位置,并确保定义它的库位于链接器命令行上使用它的库之后。

您可以使用该nm工具找出目标文件或库定义或使用的符号(= 变量、方法)。做一个man nm(或在谷歌上搜索)以了解更多信息。

于 2013-05-27T11:13:28.510 回答