2016-02-26 51 views
0

我正在尝试使用与AIX(版本7.1)一起提供的预安装(静态)kerberos库来构建认证应用程序,该程序库到目前为止正在使用MIT Kerberos共享库进行构建。使用预安装的IBM NAS Kerberos

预安装的AIX kerberos库存在于/ usr/krb5/lib中。

这里是化妆输出的剪断,这将失败:

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)#包括文件 “GSSAPI/gssapi.h” 是未找到。 “trekrb5.h”,行48.10:1540-0836(S)未找到#include文件。 make:*** [authsvr.o] Error 1enter code here

我正在使用IBM NAS 1.5.0.3。

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

删除对gssapi.h文件(在trekrb5.h罪魁祸首文件中)的引用时出现错误:“文本”OM_uint32“是意外的”。我在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;

但改变所有这些东西可能需要很长时间。有没有快捷方式可用?

你能让我知道我在做什么错吗? 我的知识仅仅是初学者的知识。任何帮助表示赞赏。

回答

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进行AIX可以从外部非官方源下载,太:http://www.perzl.org/aix/index.php?n=Main.Krb5

+0

是的,我已经这样做了。我正在寻找来自AIX NAS安装的gssapi.h文件。但没有找到这样的文件。我应该把它放在问题本身。 –