提问人:Boku 提问时间:5/25/2016 最后编辑:meskobalazsBoku 更新时间:5/25/2016 访问量:1073
对哈希函数的未定义引用
Undefined reference to hash function
问:
我正在尝试在 Code::Blocks 中运行一个程序,并且在我的程序中我使用了哈希函数,例如 和 ,但 Code::Blocks 似乎不允许它们。hsearch
hcreate
我有标题:
#include <search.h>
已经包括了,但仍然会出现诸如这样的错误。"undefined reference to 'hsearch' "
有没有允许这些函数在Code::Blocks中运行?
答:
1赞
meskobalazs
5/25/2016
#1
头文件仅包含声明。您需要安装包含实现的库。
这就是它告诉你的。它发现声明很好,但是链接器没有找到库,因此出现链接错误。
在 Linux 上,和它的实现是 的一部分,因此它已经可以使用了。但是,在 Windows 上,您需要获取它的二进制版本,设置 Code::Blocks 的库路径,并使用设置中的链接器选项。search.h
libc
评论
0赞
Boku
5/25/2016
啊,是的,这就是我要找的。我会在网上搜索一下,看看我是否能找到它并让它工作。非常感谢!
评论
search.h
不是一个库,而是一个所谓的“头文件”,它实际上是一个 C 源文件。它只提供特定对象或库实现的“接口”,以便编译器知道它。当编译器在最后一步中完成时,所需的所有对象/库都与编译器生成的内容链接在一起,以创建最终程序。