簡體   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