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 doxygen1、下載strongswan原始碼,解壓。
wget https://github.com/strongswan/strongswan/archive/5.4.0rc1.tar.gztar -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-essential2、下載NDK並解壓
wget http://dl.google.com/android/repository/android-ndk-r11b-linux-x86_64.zipunzip 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下可用。