gpt4 book ai didi

c - 对 avltree_init 的 undefined reference

转载 作者:行者123 更新时间:2023-11-30 17:18:27 25 4
gpt4 key购买 nike

讲师提供的代码中有:

typedef int (*avltree_cmp_fn_t)(const struct avltree_node *, const struct avltree_node *);

int avltree_init(struct avltree *tree, avltree_cmp_fn_t cmp, unsigned long flags);

定义 my_cmp 函数后...

int my_cmp(const struct avltree_node *a, const struct avltree_node *b)
{
struct my_struct *p = avltree_container_of(a, my_struct, node);
struct my_struct *q = avltree_container_of(b, my_struct, node);
return p->key - q->key;
}

并将其作为参数传递给 avltree_init...

avltree_init(&tree, my_cmp, 0);

我得到:

undefined reference to `avltree_init(avltree*, int (*)(avltree_node const*, avltree_node const*), unsigned long)'

有人可以解释一下为什么会发生这种情况以及我在哪里犯了错误吗?谢谢!

最佳答案

从错误消息看来,您没有链接到包含 avltree_init 函数的文件。您需要将所有文件(包括包含该函数的文件)链接到最终应用程序。该错误来自链接阶段,而不是编译阶段。

此外,我从您的错误消息中看到您正在使用 C++ 编译器来处理 C 代码。您不需要这样做:使用 C 编译器会更理想。

关于c - 对 avltree_init 的 undefined reference ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29173865/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com