如何编译Genymotion的C程序(Android x86)
发布时间:2020-12-16 03:05:56 所属栏目:百科 来源:网络整理
导读:我正在尝试构建一个简单的HelloWorld应用程序,并在Genymotion上运行它. 我的建筑系统是Ubuntu 14.04 64bit.我安装了 Android SDK(r22.6.2)和NDK(r9d). 首次尝试:使用预构建的NDK ARM工具链进行构建 TOOLCHAIN = $NDK/toolchains/arm-linux-androideabi-4.8$
我正在尝试构建一个简单的HelloWorld应用程序,并在Genymotion上运行它.
我的建筑系统是Ubuntu 14.04 64bit.我安装了 Android SDK(r22.6.2)和NDK(r9d). 首次尝试:使用预构建的NDK ARM工具链进行构建 TOOLCHAIN = $NDK/toolchains/arm-linux-androideabi-4.8 $TOOLCHAIN/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gcc --sysroot=$PLATFORM hello.c -o hello adb push hello /sdcard/ ./hello 我收到一个错误 /system/bin/sh: ./Hello: not executable: magic 7F45 做了一些研究后,我很快意识到Genymotion有x86 arch而不是ARM 第二次尝试:使用x86独立工具链构建 >首先使x86 standlone工具链 cd $NDK/build/tools ./make-standalone-toolchain.sh --arch=x86 --platform=android-19 --install-dir=/tmp/android-toolchain --ndk-dir=../../. --system=linux-x86_64 >使用工具链构建Hello cd tmp/android-toolchain/bin ./i686-linux-android-gcc -o Hello -c hello.c >在Genymotion上运行Hello adb push hello /data/local/tmp adb shell cd /data/local/tmp ./hello /system/bin/sh: ./Hello: not executable: magic 7F45 冉冉Ran ame – 在genymotion机器上. 所以应该是一场比赛. 仍然得到相同的错误.真的很感激,如果有人可以散发光. 编辑1:尝试运行/ data / local / tmp中的可执行文件,而不是/ sdcard /.仍然给出相同的错误. 编辑2:在genymotion系统上,并在文件的可执行文件,看看他们是否匹配. 解决方法
如果纯GCC没有完成你的工作,你必须采取更难的路线.
你需要一个跨工具链;我建议使用Crosstool生成加拿大的十字工具链;您可以使用NDK的独立工具链作为起点. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |