繁体   English   中英

对avltree_init的未定义引用

[英]undefined reference to avltree_init

在讲师提供的代码中有:

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编译器会更好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM