使用预安装的 IBM NAS Kerberos



我正在尝试使用AIX(ver 7.1)附带的预安装(静态)kerberos库构建身份验证应用程序,到目前为止,该库是使用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。

我查找了一个来自 AIX NAS 安装的 gssapi.h 文件。但是没有找到这样的文件。

删除对 gssapi.h 文件的引用(在 trekrb5.h 罪魁祸首文件中)会给出错误:"文本"OM_uint32"是意外的"。我搜索(grepped - 在/usr/krb5/中)寻找OM_uint32,但在/usr/krb5/中找不到。

来自 MIT-Kerberos 来源的 gassapi.h:

typedef uint32_t gss_uint32;typedef int32_t gss_int32;

typedef gss_uint32 OM_uint32;

但是改变所有这些事情可能需要很多时间。是否有任何快捷方式可用?

你能告诉我我在这里做错了什么吗?我的制作知识只是一个初学者的知识。任何帮助,不胜感激。

此问题已通过安装 krb5.toolkit.adt 得到解决 -https://bugzilla.mozilla.org/show_bug.cgi?id=237684

当编译器(严格来说,它是预处理器)找不到文件头 (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 for AIX也可以从外部非官方来源下载:http://www.perzl.org/aix/index.php?n=Main.Krb5

最新更新