Я пытаюсь создать приложение аутентификации, используя предустановленные (статические) библиотеки Kerberos, которые поставляются с AIX (версия 7.1), которая до сих пор создавалась с использованием общих библиотек MIT Kerberos.
Предустановленные библиотеки AIX kerberos находятся в / usr / krb5 / lib.
Вот фрагмент вывода make, который завершается неудачно:
xlC_r -q64 -qthreaded -qcpluscmt -qcheck=nullptr -qlanglvl=extended -qsuppress=1500-029:1540-1405:0711-224 -qnotempinc -qstaticinline -I/cb/cb10/cb/server/include -I/cb/cb10/cb/server/include/stl -I/sv/app/oracle/product/12.1.0.2/precomp/public -I/sv/app/oracle/product/12.1.0.2/rdbms/demo -I/sv/app/oracle/product/12.1.0.2/rdbms/public -g -qfullpath -DAIX -I/sv/app/openssl/product/openssl-1.0.1g/include -bstatic -I/usr/krb5/lib -I/sv/app/tuxedo/product/12.1/include -DBI_FN_EVALUATE -DNDEBUG -O3 -c authsvr.cc
«trekrb5.h», строка 47.10: 1540-0836 (S) Файл #include «gssapi / gssapi.h» не найден.
«trekrb5.h», строка 48.10: 1540-0836 (S) Файл #include не найден.
make: *** [authsvr.o] Ошибка 1Введите код здесь
Я использую IBM NAS 1.5.0.3.
Я искал файл gssapi.h, который приходит из установки AIX NAS. Но такой файл не был найден.
Удаление ссылки на файл gssapi.h (в файле преступника trekrb5.h) приводит к ошибке: «Текст« OM_uint32 »является неожиданным». Я искал (grepped — в / usr / krb5 /) OM_uint32, но его нет в / usr / krb5 /.
Из gassapi.h, полученного из источника MIT-Kerberos:
typedef uint32_t gss_uint32;
typedef int32_t gss_int32;
typedef gss_uint32 OM_uint32;
Но изменение всех этих вещей может занять много времени. Есть какие-нибудь ярлыки?
Не могли бы вы дать мне знать, что я делаю здесь неправильно?
Мои познания только для начинающих. Любая помощь приветствуется.
Когда компилятор (строго говоря, это препроцессор) не находит заголовок файла (gssapi / gssapi.h), вы должны найти его вручную (используйте служебную программу find (1)) и дать компилятору опцию -I , Например:
$ find / -name gssapi.h 2>/dev/null
/tmp/foobar/gssapi/gssapi.h
$ xlC_r ... -I/tmp/foobar
Изменить: Если у вас нет такого gssapi.h на вашем компьютере, то вы должны установить компонент, который содержит его. Обратитесь к поставщику программного обеспечения.
Редактировать: Kerberos для AIX можно также загрузить из внешнего неофициального источника: http://www.perzl.org/aix/index.php?n=Main.Krb5
Эта проблема была решена путем установки krb5.toolkit.adt —
https://bugzilla.mozilla.org/show_bug.cgi?id=237684