使用预安装的IBM NAS Kerberos

时间:2016-02-26 09:23:52

标签: c++ kerberos aix nas

我正在尝试使用AIX附带的预安装(静态)kerberos库构建一个身份验证应用程序(版本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。

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

删除对gssapi.h文件的引用(在trekrb5.h culprit文件中)会出错:"文本" OM_uint32"出乎意料的是#34;我在OM_uint32上搜索了(grepped - in / usr / krb5 /),但在/ usr / krb5 /中找不到。

从MIT-Kerberos来源获得的gassapi.h:

typedef uint32_t gss_uint32; typedef int32_t gss_int32;

typedef gss_uint32 OM_uint32;

但改变所有这些事情可能需要花费大量时间。有快捷方式吗?

你可以告诉我这里我做错了什么吗? 我的知识只是初学者的知识。任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:1)

通过安装krb5.toolkit.adt解决了这个问题 - https://bugzilla.mozilla.org/show_bug.cgi?id=237684

答案 1 :(得分:0)

当编译器(严格来说,它是预处理器)没有找到文件头(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