1. 程式人生 > >Ubuntu下,編譯StrongSwan的Android庫檔案

Ubuntu下,編譯StrongSwan的Android庫檔案

官方網址:https://wiki.strongswan.org/projects/strongswan/wiki/AndroidVPNClientBuild
說明:按照官方文件,SDK和NDK的編譯,它沒講,讓參考Google的Android編譯的相關文件。
而Google推薦的編譯環境是Ubuntu,切記!(我用CentOS編,各種錯,還是切回來了)。
Ubuntu可以用VMware安裝,參見這裡;然後,配置共享目錄,參見這裡

一、編譯StrongSwan

0、安裝編譯所需的工具。

sudo apt-get install gcc automake autoconf libtool pkg-config gettext perl python flex bison gperf lcov doxygen

1、下載strongswan原始碼,解壓。

wget https://github.com/strongswan/strongswan/archive/5.4.0rc1.tar.gz
tar -zxvf 5.4.0rc1.tar.gz 

2、切換到jni下,建立連結。

cd strongswan-5.4.0rc1/
cd src/frontends/android/app/src/main/jni
ln -s ../../../../../../../ strongswan

3、轉到根目錄,執行配置並編譯的命令。

cd ../../../../../../../
./autogen.sh && ./configure && make

注意事項

在執行命令configure 的時候,報錯:
checking for main in -lgmp... no
configure: error: GNU Multi Precision library gmp not found
用如下命令安裝下gmp就解決了:
sudo apt-get install libgmp-dev

二、配置NDK環境

1、安裝編譯工具

sudo apt-get install build-essential

2、下載NDK並解壓

wget http://dl.google.com/android/repository/android-ndk-r11b-linux-x86_64.zip
unzip android-ndk-r11b-linux-x86_64.zip

3、配置NDK環境引數

gedit ~/.bashrc,開啟 ~/.bashrc檔案,在最後加兩行,以配置PATH變數
export NDK_HOME=/home/hill/work/android-ndk-r11b
export PATH=$PATH:$NDK_HOME
source ~/.bashrc,使它立即生效。
測試配置:
echo $NDK_HOME
ndk-build -v

三、編譯Android庫

1、編譯

cd strongswan-5.4.0rc1/src/frontends/android/app/src/main/jni
git clone git://git.strongswan.org/android-ndk-openssl.git -b ndk-static openssl
ndk-build
另外,NDK其他的編譯命令如下:
ndk-build         編譯
ndk-build clean     清掉二進位制檔案
ndk-build NDK_DEBUG=1    編譯為可除錯版的二進位制檔案
ndk-build NDK_DEBUG=0    編譯為release版
ndk-build V=1        執行ndk-build且打印出它所執行的詳細編譯命令。
ndk-build -B         強制重新編譯
ndk-build -B V=1     -B 和 V=1 的組合
ndk-build -C <project路徑>  先cd進入<project路徑>,然後執行ndk-build。

2、檢視編譯結果

ll -R ../libs,-R表示遞迴檢視子目錄。

3、匯出so庫檔案

cp -R ../libs /mnt/hgfs/share/
匯出到share共享資料夾下,Windows下可用。