首页 > 解决方案 > StrongSwan 为 Android 内核根目录编译

问题描述

如何为 Android 内核编译或交叉编译 StrongSwan (VPN)。我说的不是 .APK,而是源代码中的 c++ 二进制文件。

我阅读了官方文档,其中讨论了编译 StrongSwan 以总体上编译 strongswan。我还阅读了针对 Android 交叉编译 strongswan的官方文档。

我测试了两种方法都没有成功:

  1. 第一种方法,我尝试在我的 Ubuntu 中使用 NDK for arm 进行交叉编译,但是在 ./configure 步骤中,我的 gmp 库出现了一个我无法解决的错误。

    configure: error: GNU Multi Precision library gmp not found

我尝试了各种版本的 strongswan 和 Android API

  1. 第二种方法,我用 QEMU (ARM64) 模拟树莓派,在里面我可以编译 strongswan 并运行它。但是当我把它放在 Android Studio 模拟器上时,我得到了一个错误。我认为这是因为我用动态库编译了 strongswan。我尝试了该选项

    --disable-shared --enable-static --enable-monolithic

但是当我在二进制文件上执行命令文件时:

    # file starter

starter: ELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, for GNU/Linux 3.7.0, BuildID[sha1]=e8e45d6d999bee049625c8c28e3552248045a2ab, with debug_info, not stripped

二进制文件似乎是动态链接的。我怎样才能静态编译它们?

标签: androidarm

解决方案


推荐阅读