Android ndk 如何使用Android.mk编译简单的本机代码?
特别是我正在尝试编译chainDD的su二进制文件。我试图使用Android ndk 如何使用Android.mk编译简单的本机代码?,android-ndk,Android Ndk,特别是我正在尝试编译chainDD的su二进制文件。我试图使用ndk build,但似乎我需要设置ndk\u PROJECT\u路径,但文档中没有说明该设置的内容。您需要按如下方式建立项目文件夹: 根项目 |\ujni/(包括Android.mk和您的C/C++代码) |其他目录 jni目录无法更改名称。 并在project_根目录中运行ndk build。首先,确保您拥有ndk: 以下是为您的手机编译C二进制文件的最简单方法: 通常$NDK(可能不同)= Linux: /主页//andr
ndk build
,但似乎我需要设置ndk\u PROJECT\u路径
,但文档中没有说明该设置的内容。您需要按如下方式建立项目文件夹:
根项目
|\ujni/(包括Android.mk和您的C/C++代码)
|其他目录
jni目录无法更改名称。
并在project_根目录中运行ndk build。首先,确保您拥有ndk: 以下是为您的手机编译C二进制文件的最简单方法: 通常$NDK(可能不同)= Linux: /主页/
/android ndk
Mac OS X:
/用户/
/android ndk
两者:
$HOME/android ndk
在终端:
# 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
如果我能帮忙,请告诉我
关于,一般来说,您从项目内部运行ndk build-如果您这样做是否有效?我运行ndk build,它抱怨ndk_项目路径您使用的是ndk的哪个版本?您能否将ndk_项目路径设置为项目的实际路径(例如$ndk_DIR/samples/your project,其中$ndk_DIR是ndk的路径)?我没有太多的Android开发经验,因此我不确定Android项目的最小组成部分是什么。一个Android.mk和我的源文件是否足够?目前,我正在将我的NDK_项目_路径设置为源文件和Android.mk的目录。为什么它应该是ndk的一个子目录?你是想给它添加一些格式吗?你的文件夹结构不是很清楚。谢谢你的回答。这种简单的目录结构足以让ndk构建工作。在我的例子中,我试图编译一个用于另一个项目的静态库,运行ndk build后,我在project_root/obj/local/armeabi下找到了.a文件。
$ndk/build/tools/make-standalone-toolchain.sh--platform=android-3--install dir=/tmp/my-android toolchain
可能会抛出一个错误无法从toolchain
自动配置arch,原因是$ndk/build/tools/make-standalone-toolchain.sh--platform=android-3--install dir=/tmp/my android toolchain
可能会抛出一个错误无法从toolchain自动配置arch
,根据这个答案,应该添加--toolchain=arm-linux-androideabi-4.8