本地交叉编译Android执行文件

用NDK很久了,玩一玩交叉编译,其实使用ndk-buildAndroid.mkApplication.mk文件也可以做这件事,但是因为NDK自带了toolchain的脚本,配置很方便,简单的编译可以依赖cmd了。

真机总是没有权限,adb push不上去,只能玩虚拟机了。
问题有点多,一个简单的info程序,有几个卡点。

  • 直接adb push的话,可能会报read-only的error,可以adb remount一下

  • push上去之后,默认权限中是没有x的,chmod一下

  • PIE错误如下

之前的编译命令为

1
i686-linux-android-gcc main.cc -o mac_x86

根据提示改为

1
i686-linux-android-gcc main.cc -fPIC -pie -o mac_x86

可以正常执行了,如下。

注:adb pull可以取回android上的文件