Ошибка кросс-компиляции openconnect-8.08 для android - PullRequest
0 голосов
/ 17 апреля 2020

Когда я следую инструкциям здесь , я получаю эту ошибку при запуске последней инструкции, которая является "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

Мой TOOLCHAIN: /home/fasegiar/Documents/android-ndk-r21/toolchains/llvm/prebuilt/linux-x86_64

Вот вывод файла config.log после вызова ./configure

1 Ответ

2 голосов
/ 20 апреля 2020

Из выложенного вами фрагмента я уже могу сказать, что это не сработает. При кросс-компиляции вам нужно сначала кросс-компилировать все зависимости для вашей целевой платформы (ie Android), а затем сообщить скрипту configure, где найти установленные зависимости. Для openconnect зависимости:

Обязательно:

  • libxml2 (это, в свою очередь, требует libicu, как указывает ваша ошибка)
  • zlib (это в комплекте )
  • Либо OpenSSL, либо GnuTLS (v3.2.10 +) (см. NDKPorts )

Необязательно :

  • p11-kit (для поддержки PKCS # 11)
  • libp11 (также необходим для поддержки PKCS # 11 при использовании OpenSSL)
  • libproxy
  • libtasn1 и либо tss2-esys, либо IBM TPM 2.0 TSS. (для поддержки TPMv2 при использовании GnuTLS)
  • libstoken (для поддержки токенов программного обеспечения SecurID)
  • libpsk c (для RFC6030 PSK C хранение файлов ключей HOTP / TOTP)
  • libpcsclite (для поддержки HOTP / HOTP оборудования Yubikey)
...