gpt4 book ai didi

c++ - C++ 中对 libspatialindex 函数的 undefined reference

转载 作者:行者123 更新时间:2023-11-28 06:18:20 33 4
gpt4 key购买 nike

我刚刚开始使用 libspatialindex。我跑过 instructions to install并使用以下命令在 ubuntu 上安装正常(除了我找不到它提到的 autogen.sh)。

./configure
make
sudo make install

然后我做了一个非常简单的程序来测试它如下(基于this)

#include <spatialindex/capi/sidx_api.h>
using namespace SpatialIndex;
int main(int argc, char* argv[])
{
char* pszVersion = SIDX_Version();
}

编译如下:

g++ -lspatialindex spatial.cpp -o spatial

它给了我错误:

/tmp/ccACK3p4.o: In function `main':
spatial.cpp:(.text+0xa): undefined reference to `SIDX_Version'
collect2: ld returned 1 exit status

我尝试了很多不同的方法,例如改用 cmake 并将其安装到不同的文件夹,但没有成功。有什么想法吗?

编辑:

在上面添加了命名空间 SpatialIndex,我也尝试了以下方法,但仍然不走运:

g++ -c -o spatial.o spatial.cpp
g++ -o spatial spatial.o -lspatialindex -lm

最佳答案

问题是关于链接阶段。该库已正确找到,因为编译器不会抛出那种情况的警报(我现在刚刚进行了测试)。做一个

> nm libspatialindex |grep SIDX_Version

用于检查您正在使用的库中是否存在符号。可能是 libspatialindex_c?

关于c++ - C++ 中对 libspatialindex 函数的 undefined reference ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29806367/

33 4 0
文章推荐: ios - 从 Array Swift 3 向 Core Data 添加数据
文章推荐: css - 在移动设备上呈现的普通