Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Android上运行C代码而不编译整个树_Android_C_Android Ndk_Adb - Fatal编程技术网

在Android上运行C代码而不编译整个树

在Android上运行C代码而不编译整个树,android,c,android-ndk,adb,Android,C,Android Ndk,Adb,我有一个C代码,我想添加到Android C库中 我可以在编译整个android树时构建并执行coed。 我希望能够将代码添加到现有编译的android环境中。 i、 e.使用内置设备,只需推送我的应用程序并在那里执行 我成功地使用NDK在windows platform for linux上编译代码,并使用adb push命令推送代码 尝试使用adb执行时 我得到以下错误: [Android]不可执行:magic=7F45 Magic 7F45表示二进制文件是a,并且没有编译到ARM arch

我有一个C代码,我想添加到Android C库中

我可以在编译整个android树时构建并执行coed。
我希望能够将代码添加到现有编译的android环境中。 i、 e.使用内置设备,只需推送我的应用程序并在那里执行

我成功地使用NDK在windows platform for linux上编译代码,并使用
adb push
命令推送代码

尝试使用
adb执行时

我得到以下错误:

[Android]不可执行:magic=7F45


Magic 7F45表示二进制文件是a,并且没有编译到ARM arch(您可以使用
文件
找到哪个arch)。您需要使用NDK创建独立的工具链,然后使用它来构建正确的二进制文件

以下是您如何做到这一点的主要细节:

NDK允许您创建一个“定制”的工具链安装,以简化操作。例如,考虑下面的命令:

这将创建一个名为/tmp/myandroid toolchain的目录,其中包含android-5/arch-arm系统根和工具链二进制文件的副本

请注意,默认情况下,脚本将选择基于ARM的工具链。
使用“--arch=x86”选项指定基于x86的选项,
使用“--arch=mips”选项指定基于mips的选项,或者使用“--toolchain=”选项

以后,您可以将其直接用于以下内容:


上面显示的环境变量允许您使用
configure
make
为指定的拱门构建第三方代码。当然,您可以直接使用编译器。

您所说的“添加到Android C库”是什么意思?你是说修改手机上现有的.so文件来执行你的代码吗?不是。我希望我的代码能够调用现有的c库
$NDK/build/tools/make-standalone-toolchain.sh --platform=android-5 --install-dir=/tmp/my-android-toolchain 
export PATH=/tmp/my-android-toolchain/bin:$PATH 
export CC=arm-linux-androideabi-gcc