2011-05-02 41 views
21

特別是我想編譯chainDD的su二進制文件。我試圖使用ndk-build,但似乎我需要設置NDK_PROJECT_PATH,但應該設置爲什麼,在文檔中未描述。如何使用Android.mk編譯簡單的本地代碼?

+0

通常你在你的項目中運行ndk-build - 如果你這樣做是否工作? – 2011-05-02 16:13:45

+0

我跑了ndk生成,它抱怨NDK_PROJECT_PATH – user492922 2011-05-02 19:29:48

+0

你使用的是什麼版本的NDK? – 2011-05-02 19:57:41

回答

4

你需要建立你的項目文件夾是這樣的:

project_root

| _ _ jni /(包括Android.mk和您的C/C++代碼)

| _ _ other_directory

jni目錄不能更改名稱。 並在project_root目錄中運行ndk-build。

+0

您是否想要爲此添加一些格式?你的文件夾結構不是很清楚。 – Dutts 2013-03-12 12:26:55

+0

我更新了我的答案,這足夠清楚了嗎? – onlyxool 2013-03-22 07:46:29

+0

是的,好多了 – Dutts 2013-03-22 14:31:49

5

首先,確保你有NDK:

http://developer.android.com/tools/sdk/ndk/index.html

以下是編譯爲您的手機是C二進制文件的最簡單的方法:

http://developer.android.com/tools/sdk/ndk/index.html

http://www.kandroid.org/ndk/docs/STANDALONE-TOOLCHAIN.html

通常$ NDK(可能不同)=

的Linux:

/家庭/ <user>/Android的NDK

的Mac OS X:

/用戶/ <user>/Android的NDK

兩種: $ HOME/android-ndk

In Terminal:

# create tool-chain - one line 
$NDK/build/tools/make-standalone-toolchain.sh --platform=android-3 --install-dir=/tmp/my-android-toolchain 

# add to terminal PATH variable 
export PATH=/tmp/my-android-toolchain/bin:$PATH 

# make alias CC be the new gcc binary 
export CC=arm-linux-androideabi-gcc 

# compile your C code(I tried hello world) 
$CC -o foo.o -c foo.c 

# push binary to phone 
adb push foo.o /data/local/tmp 

# execute binary 
adb /data/local/tmp/foo.o 

請讓我知道如果我可以幫忙!

Regards,

+0

'$ NDK/build/tools/make-standalone-toolchain.sh --platform = android-3 --install-dir =/tmp/my-android-toolchain'可能會拋出一個錯誤'Unable to auto-config arch from toolchain',accoding – Glowin 2016-02-12 13:20:07

+0

'$ NDK/build/tools/make-standalone-toolchain.sh --platform = android-3 --install-dir =/tmp/my-android-toolchain'可能會拋出一個錯誤'Unable to auto從工具鏈配置拱,根據這個答案http://stackoverflow.com/questions/29444079/unable-to-auto-config-arch-from-toolchain,應該添加'--toolchain = arm-linux-androideabi- 4.8' https://gist.github.com/Tydus/11109634 – Glowin 2016-02-12 14:16:45