链接md5.h库以进行HTTP Digest示例实现

时间:2018-05-08 14:06:39

标签: c gcc

我正在努力从RFC 2617编译一个简单的C程序。该程序为digtest.c,它使用digcalc.c,这是示例实现中的另一个文件。后者取决于我的编译器不知道的两个文件:

#include <global.h>
#include <md5.h>

起初我收到了这个错误:

  

digcalc.c:5:20:致命错误:global.h:没有这样的文件或目录

通过将<global.h>更改为<stddef.h>,我似乎已经解决了这个问题。但我仍然得到这个错误:

  

digcalc.c:7:17:致命错误:md5.h:没有这样的文件或目录

现在,md5.h似乎引用了libbsd中的文件。所以我安装了libbsd-dev并尝试编译这样的文件:

gcc digcalc.c digtest.c -o digtest -L/usr/lib/x86_64-linux-gnu -lbsd

其中/usr/lib/x86_64-linux-gnu是libbsd.so和libbsd.a文件的位置。但是,这不能解决上次编译错误。

有人能指出我在这里缺少什么吗?

1 个答案:

答案 0 :(得分:0)

想出来。如libbsd页上所述,必须将<md5.h>更改为<bsd/md5.h>

而不是digcalc.c中的原始标头:

#include <global.h>
#include <md5.h>

我用过:

#include <stddef.h>
#include <bsd/md5.h>

还必须将函数stricmp更改为strcasecmp,其POSIX等效。之后,示例代码无缝编译。