作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
讲师提供的代码中有:
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/
讲师提供的代码中有: typedef int (*avltree_cmp_fn_t)(const struct avltree_node *, const struct avltree_node *)
我是一名优秀的程序员,十分优秀!