当前位置: 代码迷 >> 综合 >> 【实用工具】交叉编译android版本的GDB
  详细解决方案

【实用工具】交叉编译android版本的GDB

热度:43   发布时间:2024-02-05 11:16:51.0

1、 工具包准备

1】、NDK版本:android-ndk-r13b
2】、GDB版本:http://ftp.gnu.org/gnu/gdb/gdb-7.11.tar.xz
小编环境:macOS,其他平台类似

2、搭建环境

说明:后续命令中若出现 YOUR_PATH 均指你个人目录,例如:/home/android/android-ndk-r12b-bin

1】、下载NDK,配置环境

执行命令:

android-ndk-r13b/build/tools/make-standalone-toolchain.sh --platform=android-23  --arch=arm64    --install-dir=YOUR_PATH

2】、搭建交叉编译环境

export PATH=YOUR_PATH/bin:$PATHexport CC="aarch64-linux-android-gcc  -pie -fPIE  --sysroot=YOUR_PATH/sysroot"export CXX="aarch64-linux-android-g++ -pie -fPIE   --sysroot=YOUR_PATH/sysroot"export CXXFLAGS="-lstdc++"

备注:

可以将 环境搭建 作为一个方法写入bashrc中。
添加 pie 的原因:android 在新版本上开启了PIE这个安全机制,如果不添加此参数,
编译后放到手机中运行报错:
error: only position independent executables (PIE) are supported.
在mk 中修改为:
LOCAL_CFLAGS += -pie -fPIE
LOCAL_LDFLAGS += -pie -fPIE

  相关解决方案