即使在安装cpmh库之后,对cmph函数的未定义引用也是如此

时间:2012-03-01 08:31:13

标签: header-files undefined-reference gcc4 perfect-hash

我在ubuntu上使用gcc 4.4.3。我使用命令

安装了cmph库工具0.9-1

sudo apt-get install libcmph-tools

现在,当我尝试编译示例程序vector_adapter_ex1.c时,gcc能够在其包含文件中检测cmph.h库,但显示多个错误,如

vector_adapter_ex1.c :(。text + 0x93):对cmph_io_vector_adapter' vector_adapter_ex1.c:(.text+0xa3): undefined reference to cmph_config_new'的未定义引用 vector_adapter_ex1.c :(。text + 0xbb):未定义引用cmph_config_set_algo' vector_adapter_ex1.c:(.text+0xcf): undefined reference to cmph_config_set_mphf_fd'

尽管如此,这些都是在cmph库的源代码中定义的。

任何人都可以告诉可能发生的错误或建议另一种方法来构建最小的完美哈希函数。

3 个答案:

答案 0 :(得分:0)

这可能听起来很蹩脚,但您是否已与libcmph.la联系?

答案 1 :(得分:0)

假设已安装库,您可以执行gcc $(pkg-config --libs cmph) vector_adapter_ex1.c。这会正确链接你。

答案 2 :(得分:0)

您必须在编译时链接cmph库。 gcc <file name> -lcmph将链接cmph库。此外,您可以使用-L选项指定搜索库的目录。