星期四, 3月 30, 2017

[ Android] Android NDK (二) Build NDK




如何把ndk的source code編譯成一般使用的gcc 來compile??

先把ndk linux version下載下來,




然後在ndk下去找

$NDK/build/tools/make_standalone_toolchain.py

主要是用這隻python來compile出gcc,
然後下這道command,

$NDK/build/tools/make_standalone_toolchain.py --arch arm --api 21 --install-dir /tmp/my-android-toolchain

我要編譯出arm平台的,sdk是21版的,
--install-dir是要放在哪個資料夾內。













然後build完後你可以到bin去看,
就會出現compile出來的gcc。

因為需要export一些變數才行,
所以寫一個簡單的script來compile helloworld ,
之後就可以成功build出binary,
再拿去版子上跑就搞定了。





Note:
遇到的一些問題,

1error trying to exec 'cc1': execvp: No such file or directory
如果出現這個代表他沒找到ccl這file,
要在PATH裡加上你NDK bin的目錄路徑。

2. error: only position independent executables (PIE) are supported.
如果出現這個訊息,代表你少了fPIE和pie,
在cflags和ldflags上加上這兩個flag,
記得compile時要加上clfags和ldflags。




SourceCode

Ref 1
Ref 2

沒有留言: