2016 - 2024

感恩一路有你

小米路由器高级玩法:交叉编译krb5

浏览量:1000 时间:2024-01-14 22:10:26 作者:采采

Kerberos是由美国麻省理工学院提出的基于可信赖的第三方的认证系统。Kerberos提供了一种在开放式网络环境下进行身份认证的方法,它使网络上的用户可以相互证明自己的身份。为了给小米路由器编译squid,我们需要先编译krb5,因为squid需要用到krb5的header文件。

步骤1:下载krb5源码包

首先,我们需要下载krb5-1.10.7源码包。在终端中执行以下命令:

```

wget

tar xf krb5-1.10.7-signed.tar

cd krb5-1.10.7-signed

```

步骤2:设置环境变量

为了成功编译krb5,我们需要设置一些必要的环境变量。在终端中执行以下命令:

```

echo krb5_cv_attr_constructor_destructoryes >> linux-cache

echo ac_cv_func_regcompyes >> linux-cache

echo ac_cv_printf_positionalyes >> linux-cache

echo ac_cv_file__etc_environmentyes >> linux-cache

echo ac_cv_file__etc_TIMEZONEyes >> linux-cache

```

步骤3:编译krb5

现在,我们可以开始编译krb5了。执行以下命令:

```

./configure --prefix/usr/local/arm/krb5 --hostarm-xiaomi-linux-uclibcgnueabi --cache-filelinux-cache

make

make install

```

问题解决:出现“can not upload ^^^^^^”错误

如果在编译过程中出现了“can not upload ^^^^^^”错误,我们需要注释掉./include/k5-platform.h文件的第378行和340行。具体操作如下:

将以下两行代码注释掉:

```

//#else

//# error "Don't know how to do unload-time finalization for this configuration."

```

问题解决:出现“kadmin.c:212:5: warning: function might be possible candidate for 'gnu_printf' format attribute”警告

如果在编译过程中出现了上述警告,我们需要将vfprintf改成gnu_printf。但是,如果这种更改不起作用,可以尝试将其改成fprintf。

重新编译krb5后,我们就可以继续进行squid的编译了。以上是关于交叉编译krb5的详细步骤和问题解决方法。希望对您有所帮助!

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。