我正在努力从 RFC 2617 编译一个简单的 C 程序。该程序是digtest.c
它使用 digcalc.c
,示例实现中的另一个文件。后一个依赖于我的编译器不知道的两个文件:
#include <global.h>
#include <md5.h>
一开始我得到了这个错误:
digcalc.c:5:20: fatal error: global.h: No such file or directory
我通过更改 <global.h>
解决了这个问题至<stddef.h>
, 它似乎。但我仍然收到此错误:
digcalc.c:7:17: fatal error: md5.h: No such file or directory
现在,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 文件的位置。但是,这并不能解决最后一个编译错误。
有人能指出我在这里缺少什么吗?
最佳答案
想通了。不得不改变<md5.h>
至<bsd/md5.h>
,如 libbsd 中所述页。
因此,而不是 digcalc.c
中的原始 header :
#include <global.h>
#include <md5.h>
我用过:
#include <stddef.h>
#include <bsd/md5.h>
还必须更改功能stricmp
至strcasecmp
,其 POSIX 等效项。之后示例代码就可以无缝编译。
关于c - 链接 md5.h 库以实现 HTTP Digest 示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50235630/