“gcc -s”和“strip”命令有什么区别?

2024-03-07

我想知道这两者有什么区别:

  • gcc -s:从可执行文件中删除所有符号表和重定位信息。

  • strip:丢弃目标文件中的符号。

它们有相同的含义吗?

您使用哪一个来:

  • 减少可执行文件的大小?
  • 加快其运行速度?

gcc作为编译器/链接器,其-s选项是完成的事情链接时。它也是不可配置的——它有一组信息被删除,不多也不少。

strip是可以在已编译的目标文件上运行的东西。它还具有各种命令行选项,您可以使用它们来配置要删除的信息。例如,-g仅删除调试信息gcc -g adds.

注意strip不是 bash 命令,尽管您可能从 bash shell 运行它。它是一个完全独立于 bash 的命令,是 GNU 二进制实用程序套件的一部分。

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

“gcc -s”和“strip”命令有什么区别? 的相关文章

随机推荐

  • 在 Android 上读取 JSON

    我创建了一个 JSON 格式的字符串 看起来像 private String jString CategoryId 1 CategoryId 2 然后将其初始化为 JSON 对象 如下所示 JSONObject jObject new JS
  • cscope:Cscope 错误:cscope:无法从文件 cscope.out 读取列表大小

    Issue 当我尝试在 vim 版本 7 3 中打开文件时出现以下错误 cs read prompt EOF 非法查找 E609 Cscope 错误 cscope 无法从文件 cscope out 读取列表大小 描述 我使用命令 cscop
  • 如何通过Fluent API实体框架定义多对多关系?

    下面是我的模型 public class TMUrl many other properties only property with type Keyword public List
  • 实体框架将数据保存在一对一关联中

    我正在尝试使用外键关联 http weblogs asp net manavi archive 2011 05 01 associations in ef 4 1 code first part 5 one to one foreign k
  • 如何从 Oracle/PLSQL 中的部分创建日期时间?

    我有一个约会 4 30 2012 一小时 4 和一分钟 45 我需要将其转换为 Oracle 日期时间值 以便在 PLSQL Oracle SELECT 语句中进行比较 理想情况下 会有一个像这样的函数 C 因为我更了解它 var date
  • sql 中交叉连接的组合(不是排列)

    如果我有一个表想要交叉连接到自身 如何删除重复的行 或者换句话说 我怎样才能进行 顺序无关紧要 的交叉连接 例如 如果我有一个表 T field A B C 我交叉连接到自身 这样我就不会得到 A 一行 T as t1 cross join
  • 如何从网页(内的选项卡)的 HTML 页面源中提取数据?

    我尝试过其他答案中指定的几种解决方案 例如尝试不同的用户代理 Chrome safari 等 以及使用 HTTPClient 和 BufferedReader 直接获取 HTML 但它们都不起作用 如何使 Android 输出与 Web 输
  • 如何使用 Python 的 smtplib 发送电子邮件中的换行符?

    我编写了一个脚本 将消息写入文本文件并将其作为电子邮件发送 一切都很顺利 除了电子邮件最终似乎都在一行中 我添加换行符 n它适用于文本文件 但不适用于电子邮件 您知道可能的原因是什么吗 这是我的代码 import smtplib sys i
  • 为什么“‘数组’的存储大小不是恒定的”

    我是 C 语言新手 上周 我学习使用数组来解决问题 我发现当数组的数量太大时 比如1024 1024 它会显示错误 有些人建议我使用 static 来解决它 但是这个错误 标题 让我更加困惑 我想我已经定义了参数 它应该是不变的 但事实并非
  • Spring Kafka 和事务

    我想将 Spring Kafka 与事务一起使用 但我不太明白它应该如何配置以及它如何工作 这是我的配置 props put ProducerConfig ENABLE IDEMPOTENCE CONFIG true props put P
  • 用于解析 JSON 的 JavaScript eval() 替代方案

    快速提问 JavaScript 中的 Eval 不安全 不是吗 我有一个字符串形式的 JSON 对象 我需要将其转换为实际对象 以便获取数据 function PopulateSeriesFields result data eval re
  • 版本:属性的使用版本

    我认为 versions use releases不更新用于定义依赖项中版本的属性 是否也可以更新这些属性 我看到我们有一个versions update properties 但它的目的是将版本更新到最新版本 而不仅仅是用版本替换快照 一
  • Apple 的 TestFlight 应用程序是否会自动更新外部 Beta 测试人员安装的应用程序?

    我可以从 iTunes connect 控制面板看到测试版应用程序的每个版本有多少用户 TestFlight 何时更新这些应用程序 他们是否必须打开 TestFlight 并手动选择更新 当他们启动正在测试的应用程序时 它会自动发生吗 我似
  • Swift 内存管理是如何工作的?

    具体来说 Swift 内存管理如何使用委托模式与选项一起工作 由于习惯了用 Objective C 编写委托模式 我的本能是让委托weak 例如 在 Objective C 中 property weak id
  • 将尚无超链接的文本替换为超链接

    一个更好的例子是这样的 string That is a very nice ford mustang if only every other ford was quite as nice as this honda 我想用制造商和型号的链
  • Javascript 和 Jquery 中的 array.eq() 与 array[]

    访问数组时 什么时候适合使用 eq 函数 例如 我有 slides eq slidesLength 1 css z index slidesLength 1 后来我 for i 0 i
  • 这些 PMD 规则的原因是什么?

    数据流异常分析 已找到 DD 变量 变量 异常 行 n1 n2 数据流异常分析 已找到 DU 变量 变量 异常 行 n1 n2 DD 和 DU 听起来很熟悉 我想说的是与最弱的前后条件相关的测试和分析之类的事情 但我不记得具体细节了 Nul
  • spring boot jpa无法创建表

    当我设置时 我使用 spring boot starter data jpa 来持久化我的实体 spring jpa hibernate ddl auto update 发生错误 但值为create或create drop 一切顺利 创建了
  • 插入新项目时如何防止recyclerview自动滚动到底部?

    我在用RecyclerView查看我的数据 但是当有很多项目时 RecyclerView每次插入新项目时都会自动滚动到底部 如何预防呢 这是插入代码 Override public void onChildAdded NonNull Dat
  • “gcc -s”和“strip”命令有什么区别?

    我想知道这两者有什么区别 gcc s 从可执行文件中删除所有符号表和重定位信息 strip 丢弃目标文件中的符号 它们有相同的含义吗 您使用哪一个来 减少可执行文件的大小 加快其运行速度 gcc作为编译器 链接器 其 s选项是完成的事情链接