RealView - ARM Information Center
RealView - ARM Information Center
RealView - ARM Information Center
- No tags were found...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
使 用 基 本 链 接 器 功 能3.3 优 化 和 修 正本 节 介 绍 了 重 复 节 、 未 使 用 的 节 、 调 试 节 、 胶 合 代 码 和 跳 转 的 链 接 器 优 化 , 还 介绍 了 如 何 使 用 链 接 器 反 馈 进 行 重 复 编 译 。3.3.1 公 共 调 试 节 删 除在 DWARF 2 中 , 编 译 器 和 汇 编 程 序 为 编 译 单 元 的 每 个 源 文 件 生 成 一 组 调 试 节 。armlink 可 以 检 测 到 特 定 源 文 件 中 调 试 节 的 多 个 副 本 , 并 且 在 最 终 的 映 像 中 只 保留 一 个 副 本 , 而 丢 弃 其 他 所 有 副 本 。 这 可 以 显 著 地 减 小 映 像 调 试 的 大 小 。在 DWARF 3 中 , 公 共 调 试 节 放 在 公 共 组 中 。armlink 将 只 保 留 每 组 中 具 有 相 同 签名 的 一 个 副 本 , 而 丢 弃 其 他 所 有 副 本 。3.3.2 公 共 组 或 节 删 除如 果 在 C++ 源 代 码 中 使 用 了 内 联 函 数 或 模 板 , 则 <strong>ARM</strong> 编 译 器 生 成 用 于 链 接 的 完整 对 象 , 因 此 每 个 对 象 都 包 含 其 需 要 的 内 联 函 数 和 模 板 函 数 的 外 联 副 本 。 当 在公 共 头 文 件 中 声 明 这 些 函 数 时 , 函 数 可 能 在 随 后 链 接 在 一 起 的 各 个 对 象 中 被 定义 多 次 。 为 了 删 除 重 复 副 本 , 编 译 器 会 将 这 些 函 数 编 译 到 公 共 代 码 节 或 组 的 单独 实 例 中 。公 共 代 码 节 或 组 的 单 独 实 例 可 能 不 同 。 例 如 , 可 能 在 库 中 找 到 某 些 副 本 , 它 们 已经 用 不 同 的 ( 但 兼 容 的 ) 编 译 选 项 、 不 同 的 优 化 选 项 或 不 同 的 调 试 选 项 进 行 编译 。如 果 副 本 不 同 , 则 armlink 根 据 输 入 对 象 的 属 性 保 留 每 个 公 共 代 码 节 或 组 的 最 常用 的 变 体 。armlink 将 丢 弃 其 他 变 体 。如 果 副 本 相 同 , 则 armlink 保 留 找 到 的 第 一 个 节 或 组 。此 优 化 可 由 以 下 链 接 器 选 项 控 制 :• 选 择 --bestdebug 选 项 可 使 用 最 大 的 Comdat 组 ( 可 能 提 供 最 佳 的 调 试 视图 )。• 选 择 --no_bestdebug 选 项 可 使 用 最 小 的 Comdat 组 ( 可 能 提 供 最 小 的 代 码 大小 )。 这 是 缺 省 设 置 。 在 大 多 数 情 况 下 , 使 用 --bestdebug 的 机 会 不 多 。由 于 --no_bestdebug 为 缺 省 值 , 因 此 不 管 您 在 使 用 --debug 编 译 时 是 否 生 成调 试 表 , 最 终 映 像 都 是 一 样 的 。有 关 详 细 信 息 , 请 参 阅 :— 《 编 译 器 用 户 指 南 》 中 的 第 4-17 页 的 内 联— 《 编 译 器 参 考 指 南 》 中 的 第 2-21 页 的 --[no_]debug。3-10 版 权 所 有 © 2007 <strong>ARM</strong> 公 司 。 保 留 所 有 权 利 。 <strong>ARM</strong> DUI 0349AC