12.07.2015 Views

RealView 编译工具编译器参考指南 - ARM Information Center

RealView 编译工具编译器参考指南 - ARM Information Center

RealView 编译工具编译器参考指南 - ARM Information Center

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

编 译 器 命 令 行 选 项注 意由 于 --lower_rwpi 选 项 是 缺 省 选 项 , 因 此 非 RWPI 代 码 会 自动 转 换 为 等 效 的 RWPI 代 码 。 这 种 静 态 初 始 化 将 在 运 行 时 由C++ 构 造 函 数 机 制 完 成 , 即 使 在 C 语 言 中 也 是 如 此 。/fpic, /nofpic 如 果 选 择 此 选 项 , 则 编 译 器 将 执 行 下 列 操 作 :• 使 用 PC 相 对 的 寻 址 访 问 所 有 静 态 数 据• 使 用 链 接 器 所 创 建 的 全 局 偏 移 表 (GOT) 条 目 访 问 所 有导 入 或 导 出 的 读 写 数 据• 访 问 与 pc 相 关 的 所 有 只 读 数 据 。如 果 代 码 使 用 了 共 享 对 象 , 则 您 必 须 用 /fpic 编 译 代 码 。 这是 因 为 仅 当 代 码 使 用 了 System V 共 享 库 时 才 实 现 相 对 寻 址 。在 构 建 静 态 映 像 或 静 态 库 时 , 无 需 用 /fpic 进 行 编 译 。在 编 译 C++ 时 支 持 使 用 /fpic。 在 这 种 情 况 下 , 将 把 虚 拟 函数 表 和 typeinfo 放 在 读 写 区 域 中 , 以 便 相 对 于 PC 的 位 置 对其 进 行 访 问 。注 意在 生 成 System V 或 <strong>ARM</strong> Linux 共 享 库 时 结 合 使 用 --apcs/fpic 和 --no_hide_all。限 制使 用 /ropi、 /rwpi 或 /fpic 编 译 代 码 时 存 在 一 些 限 制 。/ropi 用 /ropi 进 行 编 译 时 , 主 要 存 在 下 列 限 制 :• 在 编 译 C++ 时 不 支 持 使 用 --apcs=/ropi。• 在 用 --apcs=/ropi 进 行 编 译 时 , 一 些 合 法 的 C 结 构 体 不 起 作用 。 例 如 :extern const int ci; // roconst int *p2 = &ci; // this static initialization// does not work with --apcs=/ropi若 要 使 此 类 静 态 初 始 化 有 效 , 请 使 用 --lower_ropi 选 项 编 译代 码 。 例 如 :armcc --apcs=/ropi --lower_ropi2-6 Copyright © 2007-2009 <strong>ARM</strong> Limited. All rights reserved. <strong>ARM</strong> DUI 0348BCNon-Confidential, Unrestricted AccessID090708

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!