Android的交叉编译openconnect-8.08错误 [英] Error cross-compiling openconnect-8.08 for android

查看:211
本文介绍了Android的交叉编译openconnect-8.08错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我按照此处的说明进行操作时,最新运行此错误指令为"make":

When i follow instructions here, i get this error when running latest instruction that is "make":

make[1]: Entering directory '/home/fasegiar/Downloads/openconnect-8.08'
  CC       libopenconnect_la-ssl.lo
In file included from ssl.c:41:
In file included from ./openconnect-internal.h:102:
In file included from /usr/include/libxml2/libxml/tree.h:1307:
In file included from /usr/include/libxml2/libxml/xmlmemory.h:218:
In file included from /usr/include/libxml2/libxml/threads.h:35:
In file included from /usr/include/libxml2/libxml/globals.h:18:
In file included from /usr/include/libxml2/libxml/parser.h:810:
/usr/include/libxml2/libxml/encoding.h:31:10: fatal error: 'unicode/ucnv.h' file not found
#include <unicode/ucnv.h>
         ^~~~~~~~~~~~~~~~
1 error generated.
Makefile:1037: recipe for target 'libopenconnect_la-ssl.lo' failed
make[1]: *** [libopenconnect_la-ssl.lo] Error 1
make[1]: Leaving directory '/home/fasegiar/Downloads/openconnect-8.08'
Makefile:749: recipe for target 'all' failed
make: *** [all] Error 2

我使用的目标是:armv7a-linux-androideabi

我的工具链是:/home/fasegiar/Documents/android-ndk-r21/toolchains/llvm/prebuilt/linux-x86_64

这是config.log之后的输出./configure呼叫

推荐答案

从您发布的摘录中,我已经可以告诉您这是行不通的. 交叉编译时,首先需要为目标平台(即Android)交叉编译所有依赖项,然后告诉configure脚本在哪里可以找到已安装的依赖项.对于 openconnect ,依赖关系是:

From the snippet you posted I can already tell you this is not going to work. When cross-compiling you need to cross-compile all dependencies first for your target platform (ie Android) and then tell the configure script where to find the installed dependencies. For openconnect the dependencies are:

必填:

  • libxml2(这又需要libicu,因为您的错误指出了这一点)
  • zlib(这是捆绑)
  • OpenSSL或GnuTLS(v3.2.10 +)(请参见 NDKPorts )
  • libxml2 (this in turn requires libicu, as your error points out)
  • zlib (this is bundled)
  • Either OpenSSL or GnuTLS (v3.2.10+) (see NDKPorts)

可选:

  • p11-kit(用于PKCS#11支持)
  • libp11(如果使用OpenSSL,PKCS#11支持也需要)
  • libproxy
  • 裤子(如果使用GnuTLS,则为TPMv1支持)
  • libtasn1和tss2-esys或IBM的TPM 2.0 TSS. (如果使用GnuTLS,则为TPMv2支持)
  • libstoken(用于SecurID软件令牌支持)
  • libpskc(用于HOTP/TOTP密钥的RFC6030 PSKC文件存储)
  • libpcsclite(用于Yubikey硬件HOTP/HOTP支持)
  • p11-kit (for PKCS#11 support)
  • libp11 (also needed for PKCS#11 support if using OpenSSL)
  • libproxy
  • trousers (for TPMv1 support if using GnuTLS)
  • libtasn1 and either tss2-esys or IBM's TPM 2.0 TSS. (for TPMv2 support if using GnuTLS)
  • libstoken (for SecurID software token support)
  • libpskc (for RFC6030 PSKC file storage of HOTP/TOTP keys)
  • libpcsclite (for Yubikey hardware HOTP/HOTP support)

这篇关于Android的交叉编译openconnect-8.08错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆