屏蔽Android PIE检测机制
最近做NDK开发相关的项目,总会时不时冒出下面这句打印信息: error: only position independent executables (PIE) are supported.后面一查,原来是Android版本新添加的保护机制,以前在RK3168 android4.1上没有看到这个东西。 于是在Android源代码下找到: bionic/linker/linker.cpp 搜索PIE: 找到以下这段: //注释PIE选项 #if 0 ElfW(Ehdr)* elf_hdr = reinterpret_cast<ElfW(Ehdr)*>(si->base); if (elf_hdr->e_type != ET_DYN) { __libc_format_fd(2, "error: only position independent executables (PIE) are supported.\n"); exit(EXIT_FAILURE); } #endif将其注释再重新编译系统即可。