使用预装的 IBM NAS Kerberos
Using pre-installed IBM NAS Kerberos
我正在尝试使用 AIX(版本 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] 错误 1enter code here
我正在使用 IBM NAS 1.5.0.3。
我查找了来自 AIX NAS 安装的 gssapi.h 文件。但是没有找到这样的文件。
删除对 gssapi.h 文件的引用(在 trekrb5.h 罪魁祸首文件中)给出了一个错误:"The text "OM_uint32" is unexpected"。我在 /usr/krb5/ 中搜索(grepped - in /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,那么您已经安装了一个包含它的组件。请联系您的软件供应商。
编辑:AIX 的 Kerberos 也可以从外部非官方来源下载:http://www.perzl.org/aix/index.php?n=Main.Krb5
此问题已通过安装 krb5.toolkit.adt 得到解决 -
https://bugzilla.mozilla.org/show_bug.cgi?id=237684
我正在尝试使用 AIX(版本 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] 错误 1enter code here
我正在使用 IBM NAS 1.5.0.3。
我查找了来自 AIX NAS 安装的 gssapi.h 文件。但是没有找到这样的文件。
删除对 gssapi.h 文件的引用(在 trekrb5.h 罪魁祸首文件中)给出了一个错误:"The text "OM_uint32" is unexpected"。我在 /usr/krb5/ 中搜索(grepped - in /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,那么您已经安装了一个包含它的组件。请联系您的软件供应商。
编辑:AIX 的 Kerberos 也可以从外部非官方来源下载:http://www.perzl.org/aix/index.php?n=Main.Krb5
此问题已通过安装 krb5.toolkit.adt 得到解决 - https://bugzilla.mozilla.org/show_bug.cgi?id=237684