Связывание библиотеки md5.h для реализации примера HTTP Digest - PullRequest
0 голосов
/ 08 мая 2018

Я пытаюсь скомпилировать простую программу на C из RFC 2617 . Программа 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 голосов
/ 10 мая 2018

Разобрался. Пришлось изменить <md5.h> на <bsd/md5.h>, как отмечалось на странице libbsd .

Так что вместо оригинальных заголовков в digcalc.c:

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

Я использовал:

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

Также пришлось изменить функцию stricmp на strcasecmp, ее эквивалент POSIX. После этого пример кода скомпилирован без проблем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...