为什么arm-linux-androideabi-gcc强制-fpic?

2023-12-02

我很惊讶地发现 gcc 强制代码位置无关,即使命令行中没有明确提供这样的标志。

我怀疑这可能与 Android 动态加载器的某些期望有关(例如,对重定位类型的期望以及将代码自由地放置在任意位置的期望),但我不确定。

有人能解释一下为什么会这样吗?

$ arm-linux-androideabi-gcc --version | grep GCC
arm-linux-androideabi-gcc (GCC) 4.4.3

$ arm-linux-androideabi-gcc -v -S main.c |& grep fpic
 /home1/local64/android-toolchain/bin/../libexec/gcc/arm-linux-androideabi/4.4.3/cc1 -quiet -v -iprefix /home1/local64/android-toolchain/bin/../lib/gcc/arm-linux-androideabi/4.4.3/ -isysroot /home1/local64/android-toolchain/bin/../sysroot main.c -mbionic -fpic -quiet -dumpbase main.c -march=armv5te -mfloat-abi=soft -mfpu=vfp -auxbase main -version -o main.s

从Android 4.1开始,谷歌正在强制全面ASLR要克服常见的安全漏洞,请参阅本文更多细节。

要实现此功能,需要位置无关代码 (PIC),还需要 PIE(位置无关可执行文件)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么arm-linux-androideabi-gcc强制-fpic? 的相关文章

  • 致命异常:Google 地图 V2 中的 GLThread、StackOverflowError

    我正在实施 Google 地图 V2 并利用从外部 GPX 文件接收的交付路线 设备路径 设备当前位置和交付点位置 问题是它大多数时候都有效 我收到的错误 当它不起作用时 是下一个 03 16 20 48 37 811 I dalvikvm
  • 在 AT&T x86 程序集中查找转义字符

    问题一 我有以下汇编代码 其目的是循环输入字符串 并计算它遇到的转义字符 的数量 globl sprinter data escape string string num escape long 0 num characters long
  • 检测正在插入的设备

    我希望能够检测设备是否已插入 我希望能够像查询连接状态一样进行查询 这可能吗 或者我是否需要创建一个监听电池事件的广播接收器 显然是ACTION BATTERY CHANGED http developer android com refe
  • Android 中的列表视图到 pdf

    我有一个自定义列表视图 我想从整个列表视图制作pdf 我参考了很多帖子并实现了下面的代码 该代码将我的列表视图转pdf 但问题是它不包含整个列表视图项目 pdf 中仅提供前几项 我的转换函数列表视图转pdf is fab setOnClic
  • 在 Android 中从互联网链接获取数据

    我正在制作一个带有 URL 的应用程序 asp 扩展名 我们向其传递所需的参数并使用 POST 方法获取一些字符串结果 关于如何实现这一目标有什么建议吗 UPDATED 实际上我有一个 net 链接 它接受一些 POST 参数并给我一个结果
  • 在Android中打开浮动菜单(上下文菜单)?

    我创建了一个新菜单 名为 drmenu xml 当我按下菜单按钮时它可以正常工作 但是当用户按下按钮时我需要打开上下文菜单 下面的代码按钮只显示一个吐司 这是我的 xml 布局
  • Android 服务 START_STICKY START_NOT_STICKY

    我需要让我的服务始终在后台运行 并使用 startService 函数启动我的服务 无论应用程序的状态如何 我都不想重新启动服务 这是我的观察 START STICKY gt 如果应用程序启动 则服务正在重新启动 当应用程序关闭时 服务也会
  • 意图过滤器到底是什么?

    我读过很多关于意图过滤器的文章 但我真的无法理解它们到底是做什么的 那么 如果有人可以用一个清晰 的例子向我解释意图过滤器的作用到底是什么 thanks 我认为这是有据可查的here http developer android com g
  • 在应用程序之间共享自定义帐户验证器

    我有一个为使用自定义 AccountAuthenticator 的客户端构建的应用程序 它工作得非常好 并且满足了客户的需求 但是 这只是将使用相同身份验证管理器的应用程序集合中的第一个应用程序 这就是我不确定如何继续的地方 我无法知道任何
  • 通过覆盖滑动调整图像大小不会调整图像大小

    我在用着Glide下载并显示图像 但是 当我尝试调整图像大小时 它不会这样做 我得到随机大小 或者可能是图像的实际大小 这是我用于通过 Glide 加载的代码 Glide with context load file getUrl asBi
  • toArray 与预先确定大小的数组

    使用时ar toArray new String ar size 安卓工作室3 2 1警告预先确定大小的数组并建议空数组 有两种方式将集合转换为数组 使用 预先确定大小的数组 如 c toArray new String c size 或使
  • 为什么 Android 上的免安装应用有两种设置?

    我使用的是运行 Android 11 的 Pixel 3 我发现有 2 种不同的设置可以控制免安装应用的某些方面 设置 应用程序和通知 默认应用程序 打开链接 即时应用程序 即使未安装 也打开应用程序中的链接 切换默认为开 Google P
  • 如何更改蜂窝中儿童偏好屏幕的背景颜色

    过去几天我一直在寻找解决方案 但找不到 我需要更改右窗格的背景颜色 我知道如何更改左父首选项的颜色 我在清单文件中创建了一个新主题
  • 无法在 Android Studio 中运行项目

    当我尝试在 Android Studio 中运行我的项目时 我收到以下错误消息 Execution failed for task CricHQ dexDebug gt com android ide common internal Log
  • 谷歌的Json解析Gson库:JsonElement和JsonObject有什么区别?

    public abstract class JsonElement extends Object 表示 Json 元素的类 它可以是 JsonObject JsonArray JsonPrimitive 或 JsonNull public
  • 调用属于Fragment的Activity的函数

    我正在与多个Fragments在 Android 下 我对如何从嵌入式应用程序发送和接收数据感到困惑 为了简单的解释 我有一个ListFragment and a MapFragment使用解释的方法here https stackover
  • 当应用程序从最近的应用程序中滑动时,前台服务会被终止,通知也会被删除

    我有一个foreground service有通知 当应用程序从最近的应用程序托盘中滑出时 服务将被终止 通知也会被删除 这是我的服务的代码VoiceService class Override public IBinder onBind
  • Android:在surfaceview上实现admob

    我有一个使用 SurfaceView 的小游戏形式的活动 下面是代码片段 我很困惑如何在 SurfaceView 上实现 admob 请建议 public class DroidzActivity extends Activity priv
  • 在android中测量不规则多边形的面积

    我正在开发一个应用程序 在其中我在地图上绘制多边形 并且我使用的地图不是谷歌 它的Mapsforge开源离线地图库 我可以通过将地理点转换为像素点来轻松在地图上绘制多边形 但在这里我想发现是不规则的多边形 为此我做了很多尝试 但它让我失败了
  • Android 中用于过渡的自定义动画对象?

    我想用一些更奇特的东西来覆盖 Android 中的默认活动转换 我想做的事情不能用通常使用的 XML 集来完成 所以我不能使用overridePendingTransition因为它只接受对基于 XML 的动画资源的整数引用 我想做的是创建

随机推荐

  • 将除少数 IP 地址之外的所有请求重定向到子目录

    这个问题试图结合从以前的一些答案中获得的知识 所以不要标记为重复 除非答案满足即将给出的所有标准 这就是我想做的 我需要暂时将 htaccess 访问者重定向到我的网站的克隆副本 以便我可以对现有网站进行修改 因此 我有以下需求 1 所有用
  • IP 摄像机捕获 RTSP 流大延迟 OPENCV

    我正在尝试在 IP 摄像机上进行一些处理 效果很好 但我发现现实世界和视频捕获之间存在大约 7 10 秒的延迟 我正在使用 rtsp ip port live ext 该相机有一个网络界面 IE ActiveX 可以以非常低的延迟显示图像
  • 从 json 文本文件加载 JSONObject 的最佳方法是什么?

    将包含 JSON 的文件加载到 JSONObject 中的最简单方法是什么 目前我正在使用 json lib 这就是我所拥有的 但它引发了异常 XMLSerializer xml new XMLSerializer JSON json xm
  • JsonView注解对象的所有字段

    如何将 Java 对象的所有字段包含到 JSON 响应 视图 中而不指定 JsonView在该 Java 对象的每个字段上 编辑 我需要这个来实现而不使用另一个外部库 这是一个常见问题 JsonView 该注释仅适用于方法和属性 因此您不能
  • Google 地图 V3 - 我无法调和关闭

    我知道这是一个常见问题 但我已经盯着 阅读谷歌搜索并盯着更多 但我看不出出了什么问题 我从 MySql 表填充地图 对英国邮政编码进行反向地理编码 在结果周围画一个圆圈 但我无法理解为什么我的闭包函数不起作用 据我了解 闭包原则是关于从循环
  • 如何在 Symfony2 中使用 Doctrine2 创建 2 个连接(mysql 和 postgresql)

    我是 Symfony2 的新手 我的问题很简单 我会在一个捆绑包中使用不同主机和驱动程序上的 2 个与数据库的连接 你能帮我解决这个问题吗 你可以这样做 doctrine dbal default connection alpha conn
  • 在 Insert 命令上更新 mysql 表

    我有一种情况 当在第一个表中插入一行数据时 我想更新第二个表 为了实现这一点 我使用 mysql 触发器 下面是我正在使用的查询 但它对我不起作用 DELIMITER CREATE TRIGGER after insert AFTER IN
  • 在 SWT 中设置/获取 RadioGroupFieldEditor 的值

    我正在尝试在我正在开发的 Eclipse RCP 应用程序中添加 RadioGroupFieldEditor 但似乎无法做两件关键的事情 设置单选按钮的值 即当打开对话框 窗口时 我想将默认值设置为 button1 获取所选单选按钮的当前值
  • 使用 JavaScript Fetch API 将 POST 请求发送到在本地主机上运行的 FastAPI 应用程序

    我的本地计算机上有一个 FastAPI 应用程序在以下 URL 下运行 http localhost 8000 使用以下 Python 代码 from typing import Union from fastapi import Fast
  • jQuery 或 Javascript 检查图像是否已加载

    我知道 Stackoverflow 上有很多这样的内容 但我还没有在最新版本的 jquery 1 10 2 中找到适合我的内容 我确实尝试过 lazy load function 但我相信经过一些研究使用 loadjQuery 1 8 中不
  • 从 javascript 调用 ASP 函数

    你好 我有这个问题 我试图找到一种从 asp 控制器调用 javascript 函数的方法 我在这里做的是代码 lt head gt
  • 仅将网格线添加到较小的中断处(ggplot)

    我试图制作如下图表ggplot 我希望 y 标签显示从 1 到 50 的整组值 但我只想每 10 个数字生成水平网格线 我以为添加minor breaks然后控制主题就可以了 但是 将主要网格线设置为element blank似乎也覆盖了小
  • 将菜单添加到加载项内的 Visual Studio 菜单栏

    是否可以在外接程序内创建一个自定义菜单并将其添加到 Visual Studio 的主菜单栏 我希望加载项创建公司特定菜单 如果尚不存在 然后将其自己的特定命令添加到该菜单 这样 如果提供了多个加载项 那么它们都可以将命令添加到同一菜单中 我
  • 从以前的 Jenkins 构建中获取 Subversion 修订版

    我有一个 Jenkins 工作 定期轮询颠覆 当构建开始时 我希望 Jenkins 工作从以前的 Jenkins 构建中获取 文件 X 的 SVN Rev 我想要这个修订号的原因是这样我可以实现一个脚本 在以前的 Jenkins 构建 文件
  • contenteditable=true 块内的 contenteditable=false 在 IE8 中仍然可编辑

    我有以下 HTML 旨在确保内部span不可编辑 这适用于其他浏览器 但不适用于 IE8 div Luke I am your father span I m your son Ewww span Don t speak back to m
  • 调用未定义的方法 Illuminate\Database\Query\Builder::links()

    这是怎么回事 我在使用 Laravel Paginator 时遇到了一些问题 我使用 order by 和 paginator 构建了该函数 但收到错误消息 调用未定义的方法 Illuminate Database Query Builde
  • 如何在服务器端获取window.location.hash?

    是否可以得到window location hash仅在服务器端代码上 http mysite com here 我想要得到here 您必须使用一些 AJAX 来发送它 因为它无法从服务器端直接访问
  • Android - 如何在特定点绘制字母?

    我想在屏幕上随机位置填充 100 个不同的字母 在 iPhone 上 我刚刚创建了一堆 UILabels 设置了它们的 x 和 y 位置 然后使用动画来移动它们 在 Android 上 我似乎无法将 TextView 添加到我的视图并指定其
  • 合并来自两个不同数据库的表 - sqlite3/Python

    我有两个不同的 SQLite 数据库 XXX 和 YYY XXX包含表A YYY包含表B A 和 B 具有相同的结构 列 如何在 Python SQLite API 中将 B 的行追加到 A 中 追加 A 后包含 A 行和 B 行 您首先使
  • 为什么arm-linux-androideabi-gcc强制-fpic?

    我很惊讶地发现 gcc 强制代码位置无关 即使命令行中没有明确提供这样的标志 我怀疑这可能与 Android 动态加载器的某些期望有关 例如 对重定位类型的期望以及将代码自由地放置在任意位置的期望 但我不确定 有人能解释一下为什么会这样吗