error: only position independent executables (PIE) are supported. 1 error: only position independent executables (PIE) are supported. 这是由于PIE安全机制所引起的,从Android4.1开始引入该机制,但是Android L之前的系统版本并不会去检验可执行文件是否基于PIE编译出的。因此不会报错。但是Android L已经开启验证,如果调用的可执行文件不是基于PIE方式编译的,则无法运行。解决办法非常简单,编译的时候加上如下的flag就行。 LOCAL_CFLAGS += -pie -fPIE LOCAL_LDFLAGS += -pie -fPIE 1 2 LOCAL_CFLAGS += -pie -fPIE LOCAL_LDFLAGS += -pie -fPIE
解决Android PIE错误
本文解决了一个常见问题:在Android L及更高版本中,由于PIE安全机制导致的可执行文件运行错误。从Android 4.1引入PIE机制,但直到Android L才开始强制检查。若非基于PIE编译,应用将无法运行。解决方案是在编译时添加特定的CFLAGS和LDFLAGS标志。
999

被折叠的 条评论
为什么被折叠?



