无法找到错误cpp linux

时间:2013-05-27 11:03:19

标签: c++ compiler-errors cmake linker-errors undefined-reference

这可能真的很愚蠢,但我在尝试使用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 ...'的错误行是不可理解的。如何找到错误。
  3. 我已经被困了一段时间,在错误后解决错误并且在这里结束了。请帮我。提前致谢

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

1 个答案:

答案 0 :(得分:1)

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

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

您可以使用nm工具找出对象文件或库定义或使用的符号(=变量,方法)。进行man nm(或在谷歌搜索)以了解更多信息。