当我遵循说明here时,在运行最新的“ 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
答案 0 :(得分:2)
从您发布的代码段中,我已经可以告诉您这行不通。 交叉编译时,首先需要为目标平台(即Android)交叉编译所有依赖项,然后告诉configure脚本在哪里可以找到已安装的依赖项。对于openconnect,依赖性为:
必填:
可选:
- 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支持)