为什么不总是使用 fpic(位置无关代码)? [复制]

2024-02-11

I read this https://stackoverflow.com/questions/5311515/gcc-fpic-option在 PIC 上发帖,似乎使用 PIC 总是好的(无论何时它是 exe/静态/共享库)。

那么有哪些缺点呢?
是否有示例详细说明何时不使用 PIC?


链接问题中接受的答案非常简单,并且只提出了 PIC 和非 PIC 代码之间的一个区别,即生成相对而不是绝对的跳转。

当你制作 PIC 代码时,它不仅仅是code这是与位置无关的,也是与数据无关的。并不是所有的代码或数据都可以简单地通过使用相对偏移量来寻址,它必须在加载时(当库/程序加载到内存中时)甚至在运行时解析。

此外,使用相对寻址意味着 CPU 必须将相对偏移量转换为绝对地址,而不是由编译器完成。

在具有虚拟内存的系统上,当编译器可以一劳永逸地完成这些操作时,通常不需要在这些相对地址解析上花费加载或运行时。

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

为什么不总是使用 fpic(位置无关代码)? [复制] 的相关文章

  • C# SmtpClient编程中如何设置带有中文的附件文件名?

    我的代码如下 ContentType ct new ContentType ct MediaType MediaTypeNames Application Octet ct Name 这是一个很长的中文文件名希望能用它在附件名中 Doc A
  • 静态构造函数和 BeforeFieldInit?

    如果类型没有静态构造函数 则将执行字段初始值设定项 就在使用该类型之前 或者在某个时间点突发奇想 运行时 为什么这段代码 void Main start Dump Test EchoAndReturn Hello end Dump clas
  • 是否可以使用 http url 作为 DirectShow .Net 中源过滤器的源位置?

    我正在使用 DirectShow Net 库创建一个过滤器图 该过滤器图通过使用 http 地址和 WM Asf Writer 来流式传输视频 然后 在网页上 我可以使用对象元素在 Windows Media Player 对象中呈现视频源
  • 如何使用 openSSL 函数验证 PEM 证书的密钥长度

    如何验证以这种方式生成的 PEM 证书的密钥长度 openssl genrsa des3 out server key 1024 openssl req new key server key out server csr cp server
  • C# 中的 Stack<> 实现

    我最近一直在实现递归目录搜索实现 并且使用堆栈来跟踪路径元素 当我使用 string Join 连接路径元素时 我发现它们被颠倒了 当我调试该方法时 我查看了堆栈 发现堆栈内部数组中的元素本身是相反的 即最近 Push 的元素位于内部数组的
  • 如何在 C# 中将 Json 转换为对象

    我想将 Json 转换为 C 中的对象 这里的 Json 是 值 e920ce0f e3f5 4c6f 8e3d d2fbc51990e4 如何使用 Object 问题看似愚蠢 但其实并不那么愚蠢 我没有简单的 Json 我有 IEnume
  • C# 中一次性对象克隆会导致内存泄漏吗?

    检查这个代码 class someclass IDisposable private Bitmap imageObject public void ImageCrop int X int Y int W int H imageObject
  • 防止控制台应用程序中的内存工作集最小化?

    我想防止控制台应用程序中的内存工作集最小化 在Windows应用程序中 我可以这样做覆盖 SC MINIMIZE 消息 http support microsoft com kb 293215 en us fr 1 但是 如何在控制台应用程
  • 用于在标头更改时重新编译的简单 C 项目的示例 makefile

    有谁有完整的 makefile 可以执行以下操作 如果 HEADER 文件发生更改 则重建项目 cpp 文件在 makefile 中列出 头文件未在 makefile 中列出 头文件允许与 cpp 文件具有不同的名称 部分cpp文件没有头文
  • Libev,如何将参数传递给相关回调

    我陷入了 libev 中争论的境地 通常 libev 在类似的函数中接收包 接收回调 没关系 但是实际操作中 我们需要派遣一个亲戚 写回调 根据收到的包裹处理具体工作 例如 S RECV MSG pstRecvMsg S RECV MSG
  • 来自嵌入图像的 BitmapSource

    我的目标是在 WPF 窗口上重写 OnRender 方法中绘制图像 someImage png 它是嵌入资源 protected override void OnRender System Windows Media DrawingCont
  • 保证复制省略是否适用于函数参数?

    如果我理解正确的话 从 C 17 开始 这段代码现在要求不进行任何复制 Foo myfunc void return Foo auto foo myfunc no copy 函数参数也是如此吗 下面的代码中的副本会被优化掉吗 Foo myf
  • wordexp 失败时我们需要调用 wordfree 吗?

    wordexp 失败时我们需要调用 wordfree 吗 在某些情况下 调用 wordfree 似乎会出现段错误 例如 当 wordfree 返回字符串为 foo bar 的错误代码时 这在手册页中并不清楚 我已经看到在某些错误情况下使用了
  • 如何在 Javascript 中连接 C# ActiveX 事件处理程序

    我尝试使用几个代码片段将 ActiveX 对象与 Javascript 事件处理程序挂钩 我无法确定为什么事件处理程序没有被调用 带有项目的 Github 存储库 https github com JesseKPhillips Csharp
  • 如何防止 Blazor NavLink 组件的默认导航

    从 Blazor 3 1 Preview 2 开始 应该可以防止默认导航行为 https devblogs microsoft com aspnet asp net core updates in net core 3 1 preview
  • Unity c# 四元数:将 y 轴与 z 轴交换

    我需要旋转一个对象以相对于现实世界进行精确旋转 因此调用Input gyro attitude返回表示设备位置的四元数 另一方面 这迫使我根据这个四元数作为默认旋转来计算每个旋转 将某些对象设置为朝上的简单方法如下 Vector3 up I
  • .NET 和 Mono 之间的开发差异

    我正在研究 Mono 和 NET C 将来当项目开发时我们需要在 Linux 服务器上运行代码 此时我一直在研究 ASP NET MVC 和 Mono 我运行 Ubuntu 发行版 想要开发 Web 应用程序 其他一些开发人员使用 Wind
  • Xamarin Forms Binding - 访问父属性

    我无法访问页面的 ViewModel 属性以便将其绑定到 IsVisible 属性 如果我不设置 BindingContext 我只能绑定它 有没有办法可以在设置 BindingContext 的同时访问页面的 viewmodel root
  • 调用 .ToArray() 时出现 ArgumentException

    我有一个经常被清除的列表 代码完全是这样的 VisitorAgent toPersist List
  • 声明一个负长度的数组

    当创建负长度数组时 C 中会发生什么 例如 int n 35 int testArray n for int i 0 i lt 10 i testArray i i 1 这段代码将编译 并且启用 Wall 时不会出现警告 并且似乎您可以分配

随机推荐

  • 如何检查是否设置了闹钟

    我正在尝试检查我的闹钟是否处于活动状态 在设置闹钟之前 alarmIsSet 方法将返回 false 设置闹钟时返回 true 到目前为止一切顺利 但是 在我取消闹钟后 alarmIsSet 将继续返回 true 直到我重新启动设备 我该如
  • 检查字符串是否采用特定日期格式

    您好 我收到一个带有日期格式的字符串年 月 日 但我想将它与格式进行比较日 月 年万一它不一样 肯定不一样 我想转换它 对我来说问题不是转换 而是比较两种格式 所以我想也许是这样的 var dt obj date this a string
  • 类型错误:无法使用此索引类型执行 __truediv__:DatetimeArray

    我有一个包含收盘价的数据框 Date World EN UT IND MAT CS CD IT FN TC HC 0 1997 06 13 939 3672 96 0238 75 2840 105 2635 124 7077 80 4562
  • 使用 Google 应用程序脚本将 xlsx 文件从 gdrive 导入到电子表格

    我目前正在创建一个脚本 可以将从 gdrive 文件夹存储的 xlsx 文件导入到电子表格中 我是否可以知道是否有人有我可以探索的参考或示例我已经做了一些研究 但其中一些正在 CSV 过程中 Firstly 这不是一些赠品服务 如果没有代码
  • 没有缓存版本的 gradle

    我在同步 gradle 时收到此错误 我对 gradle 还很陌生 所以不知道到底是什么问题 错误 没有 com android tools build 的缓存版本 gradle 0 10 1 可用于离线模式 当我去Setting gt G
  • 以编程方式将 SVG 形状转换为路径(lineto、moveto)

    我有一个来自 Inkscape Illustrator 或任何其他应用程序的 SVG 文件 我想将形状转换为lineto moveto curveto format 我想要的是这样的 Appname svgfile outfilewithp
  • Spring boot 中 /* 和 /** 模式有什么区别?

    当我发现过滤器之间存在差异时 我试图为过滤器注册某些 URL and 模式 Bean public FilterRegistrationBean tokenAuthenticationFilterBean FilterRegistratio
  • SQL查询获取另一个表中多行的行数

    在我的应用程序中 我有一组可以在列出资源时应用的过滤器 这些过滤器通过在执行查询之前添加 WHERE 子句等来构建查询 这是使用 SQL Server 2008 我有两个相关的表 一个包含有关资源的一些静态数据 另一个可以包含与该资源相关的
  • if 语句中的结构体初始化

    我想检查结构是否为空 即它的所有字段是否都设置为其默认值 以下内容按预期工作 package main import fmt type MyStruct struct field1 string field2 int func main v
  • R coxph() 警告:Loglik 在变量之前收敛

    我在使用 coxph 时遇到一些问题 我有两个分类变量 性别和可能的原因 我想将其用作预测变量 性别只是典型的男性 女性 但可能的原因有 5 个选项 我不知道警告消息有什么问题 为什么置信区间从 0 到 Inf 并且 p 值如此高 这是代码
  • jQuery Deferred 的 $.when() 和 failed() 回调参数

    使用时我得到了意想不到的结果 when 当其中一项延迟操作未成功时 以这个 JavaScript 为例 它创建了 2 个延迟 第一个成功 第二个失败 var f1 function return Deferred function dfd
  • jQuery UI 对话框链接而不是按钮

    我喜欢添加一个按钮 默认支持 并链接 jQuery UI 对话框 如何在 jQuery UI 对话框中添加链接 就我而言 我喜欢有 保存 按钮和 取消 链接 提前致谢 您必须按照您想要的方式设置按钮的样式 但这会注入一个链接并绑定单击 甚至
  • 如何在zendframework2中使用partial

    在ZF1中 我们在layout phtml文件中使用类似的部分 this gt partial header phtml array vr gt zf2 我们如何在 ZF2 中做到同样的事情 这可以通过以下方式实现 echo this gt
  • Python 导入错误“DLL 加载失败”| Python

    我正在 IIS6 Web 服务器后面提供 Django 应用程序 测试服务器运行完美 但是当在 Web 服务器后面运行时 模块无法导入 我收到此错误 加载 pyodbc 模块时出错 DLL加载失败 找不到指定的模块 只是为了记录该模块是py
  • Stack Overflow 桌面通知如何工作?

    也许这是一个相当大且模棱两可的问题 在 Stack Overflow 聊天室中 有一个 启用桌面通知 按钮 当有人回复您时 系统托盘中会显示一些内容 这是通过什么机制起作用的 这一直让我很好奇 网站如何访问系统托盘 它使用Notificat
  • javascript 循环中的承诺或如何一对一调用函数

    我和 slimerjs 一起工作 所以我有一个包含 url 和函数 foo 的数组 它可以用一个 url 来制作一些东西 该函数返回 Promise 如果我做这样的事情就可以了 foo urls then foo orError then
  • “只读...”类型的参数不可分配给“...[]”类型的参数

    有一个类似的问题 但与我在这里发现的问题不同 类型的参数不可分配给 类型的参数 TS 2345 https stackoverflow com questions 54298051 argument of type is not assig
  • 如何在具有 Decimal 类型值的 pandas TimeSeries 上使用mean方法?

    我需要将 Python 十进制类型值存储在 pandas 中TimeSeries DataFrame目的 在 TimeSeries DataFrame 上使用 groupby 和 mean 时 Pandas 给我一个错误 以下基于浮动的代码
  • 将 ASP.NET MVC 混合到 ASP.NET WebForms 中

    由于某种原因 我的路由忽略了任何访问我的 MVC 页面的尝试 只是给了我 404 我有一个 WebForms 应用程序设置如下 虚拟目录 东西 所以我通常像这样访问我的网站 http localhost thing someFile asp
  • 为什么不总是使用 fpic(位置无关代码)? [复制]

    这个问题在这里已经有答案了 I read this https stackoverflow com questions 5311515 gcc fpic option在 PIC 上发帖 似乎使用 PIC 总是好的 无论何时它是 exe 静态