关于加入NDK编译环境的方法以及如何加入PIE模块的编译选项

简介: 之前在编译一个公司的MTK平台的Android开机加密程序的时候死活编译不通过,后面发现,有一样东西没有设置:TOOLPREFIX = $(ANDROID_SRC_PATH)/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.8/bin/arm-linux-androideabi-这一项指的是用Android交叉编译工具链中的arm编译器。

之前在编译一个公司的MTK平台的Android开机加密程序的时候死活编译不通过,后面发现,有一样东西没有设置:

TOOLPREFIX = $(ANDROID_SRC_PATH)/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.8/bin/arm-linux-androideabi-

这一项指的是用Android交叉编译工具链中的arm编译器。

当设置了这一项,我再编译这个程序的时候,又出现某某头文件没有包含,那时就慌了,完全不知道如何解决,后面参考了一些博客后得出结论:

http://blog.csdn.net/smfwuxiao/article/category/1328624

必须要设置NDK来做编译环境,那么这就需要指定NDK的环境变量,如何指定?

到网上搜索下载一个工具:android-ndk-r9b

(1)NDK_HOME设置成环境变量,并指定编译环境的路径:

打开/etc/bash.bashrc后,在第一行添加:export NDK_HOME=/home/pst/tools/android-ndk-r9b/


指定完可以正常编译了,但是程序下载到板子上却发现无法运行,发现是PIE的问题,PIE机制是Android在4.x版本以后引入的一种安全机制,是出于对Android系统的保护而产生的,那么,只需要在Makefile中加入这两个编译选项即可:

LOCAL_CFLAGS += -pie -fPIE
LOCAL_LDFLAGS += -pie -fPIE

当然,如果你觉得不爽,也可以把PIE机制给屏蔽掉:

http://blog.csdn.net/morixinguan/article/details/65630027



目录
相关文章
|
12月前
|
存储 容器
内存越界访问(Out-of-Bounds Access)
【10月更文挑战第12天】
1240 2
|
12月前
|
物联网 C#
【C#】简单的蓝牙通讯功能实现
【C#】简单的蓝牙通讯功能实现
575 0
|
安全 Java 开发者
Java并发编程:深入理解synchronized和ReentrantLock
在Java并发编程中,正确使用同步机制是确保线程安全的关键。本文将深入探讨Java内置的两种同步机制——synchronized关键字和ReentrantLock类。我们将通过权威数据、经典理论和实际案例,对比分析它们的性能、用法和适用场景,帮助开发者做出明智的选择。
161 27
|
12月前
|
Java 关系型数据库 MySQL
数据库的连接用Java
本文介绍了如何使用Java连接MySQL数据库,包括注册JDBC驱动、创建数据库连接URL、设置数据库用户和密码、建立连接以及关闭连接的完整代码示例。
324 0
数据库的连接用Java
|
9月前
|
Windows
Office Tool Plus 永恒经典,让每个人都能轻松使用上免费的办公神器!
本文介绍如何使用Office Tool Plus在Windows 11系统上快速、免费安装和激活Office。首先,下载并解压Office Tool Plus,启动后选择“Microsoft 365企业应用版”并设置为简体中文,点击“开始部署”。安装完成后,可通过两种方法激活Office:一是使用命令框输入特定指令,二是通过KMS激活。推荐使用KMS服务器(如kms.loli.beer)进行激活。此外,若之前安装过Office,需先清除激活信息和旧版本残留文件,以确保新安装顺利进行。
4654 9
|
10月前
|
安全 搜索推荐 测试技术
陪玩系统安全问题 陪玩系统用户体验 陪玩系统功能 陪玩搜索功能优化 陪玩系统开发教程
陪玩系统的安全问题至关重要,涉及用户数据保护、支付安全和平台稳定性。关键措施包括多因子认证、支付接口加密、防止恶意脚本注入、DDoS攻击防护及数据加密。同时,优化用户体验也非常重要,如简化操作流程、提供互动功能和个性化服务。核心功能涵盖用户注册、陪玩师资料展示、智能匹配、实时通讯、支付结算等。开发时需综合考虑需求分析、技术选型、界面设计和功能实现,并进行充分测试与优化,确保系统稳定性和安全性。
546 0
|
机器学习/深度学习 PyTorch TensorFlow
ONNX 模型互操作性的最佳实践
【8月更文第27天】随着深度学习技术的发展,越来越多的框架被开发出来以满足不同的需求。然而,不同的框架之间缺乏互操作性可能会限制模型的部署和迁移能力。Open Neural Network Exchange (ONNX) 格式旨在解决这个问题,它提供了一种标准化的方法来表示机器学习模型,从而实现了不同框架之间的模型转换和共享。本文将探讨如何在不同的深度学习框架之间高效地转换和部署模型,并提供一些实际的代码示例。
552 1
|
自然语言处理 监控 算法
【算法精讲系列】通义模型Prompt调优的实用技巧与经验分享
本文详细阐述了Prompt的设计要素,包括引导语、上下文信息等,还介绍了多种Prompt编写策略,如复杂规则拆分、关键信息冗余、使用分隔符等,旨在提高模型输出的质量和准确性。通过不断尝试、调整和优化,可逐步实现更优的Prompt设计。
3258 11
|
Android开发
android连接指定wifi
android连接指定wifi
413 0
|
监控 Java Unix
日常知识点之内存泄露定位手段(c语言hook malloc相关方式)
日常知识点之内存泄露定位手段(c语言hook malloc相关方式)
309 0