C++ 无法找到错误cpp linux
这可能真的很愚蠢,但在尝试使用cmake编译某些代码模块时,我遇到了以下错误C++ 无法找到错误cpp linux,c++,compiler-errors,cmake,linker-errors,undefined-reference,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): undefin
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的软件包的一部分。这是一个链接时间错误。方法
ANNkd_-tree::ANNkd_-tree(float**,int,int,int,ANNsplitRule)
在link命令中指定的任何库和对象文件中都找不到,尽管它已被引用
您必须找出它的定义位置,并确保在链接器命令行上定义它的库位于使用它的库之后
您可以使用
nm
工具找出对象文件或库定义或使用了哪些符号(=变量、方法)。进行MANNM
(或在谷歌上搜索)以了解更多信息。1。这是链接器错误,链接器找不到符号。您需要将包含它的库或对象文件放在命令行上。如果您使用的是Linux,我猜您使用的是g++来编译您的应用程序。如果您有libANNkd_tree.so文件或类似文件,则该命令假定为:g++something.cpp-lANNkd_tree。请向我们展示如何编译和链接类似于g++source.cpp object_file.o
或g++source.cpp-lLibrary
的代码。但是如果您想安装一个软件包,那么您可能不是自己编写makefile,因此,您可能不需要将对象文件或库添加到编译命令中。您需要确保在CMakeLists.txt中有一个指向所需库的命令。@LakshmiNarayanan您可以通过“我的用户”页面上的电子邮件与我联系。确保在电子邮件中复制并粘贴CMakeLists.txt。