⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gcc中文手册2.htm

📁 GCC中文使用详细说明
💻 HTM
📖 第 1 页 / 共 4 页
字号:
      较慢的机器调取指令,允许其他指令先执行,直到调取指令或浮点运算完成. <BR><BR>-fschedule-insns2 
      <BR>类似于`-fschedule-insns'选项,但是在寄存器分配完成后,需要一个额外的指令调度过程.对于 
      寄存器数目相对较少,而且取内存指令大于一个周期的机器,这个选项特别有用. <BR><BR>&nbsp;&nbsp;<BR>目标机选项(TARGET 
      OPTION)<BR>缺省情况下, GNU CC编译出本机类型的目标码.然而也可以把他安装成交叉编译器, 
      为其他机型编译程序.事实上,针对不同的目标机,可以同时安装GNU CC相应的配置.然后用`-b'选项指定 目标机种. 
      <BR><BR>顺便提一下,新版本和旧版本的GNU CC可以共存.其中一个版本(可能是最新的那个)为缺省版本,但是有时候你希望使用 其他版本. 
      <BR><BR><BR>-b machine <BR>参数machine指出编译的目标机种.这个选项用于安装为交叉编译器的GNU CC. 
      <BR>参数machine的值和配置GNU CC交叉编译器时设置的机器类型一样.例如,如果交叉编译器配置有 `configure 
      i386v',意思是编译80386上的System V目标码,那么你可以通过`-b i386v'运行交叉编译器. 
      <BR><BR>如果没有指定`-b'选项,通常指编译本机目标码. <BR><BR><BR>-V version 
      <BR>参数version指出运行哪个版本的GNU CC.这个选项用于安装了多个版本的GCC.例如,如果 
      version是`2.0',意味着运行GNU CC 2.0版. <BR>如果没有指定`-V'选项,缺省版本取决于GNU 
      CC的安装方式,一般说来推荐使用通用版本. <BR><BR><BR><BR>&nbsp;&nbsp;<BR>机器相关选项(MACHINE 
      DEPENDENT OPTION)<BR>每一种目标机型都有自己的特别选项,这些选项用`-m '开关引导,选择不同的硬件型号或配置---例如, 
      68010还是68020,有没有浮点协处理器.通过指定选项,安装 编译器的一个版本能够为所有的型号或配置进行编译. 
      <BR><BR>此外,编译器的某些配置支持附加的特殊选项,通常是为了在命令行上兼容这个平台的其他编译器. 
      <BR><BR><BR>下面是针对68000系列定义的`-m'选项: <BR><BR>-m68000 <BR>-mc68000 
      <BR>输出68000的目标码.如果编译器按基于68000的系统配置,这个选项就是缺省选项. <BR><BR>-m68020 
      <BR>-mc68020 <BR>输出68020的目标码(而不是68000).如果编译器按基于68020的系统配置,这个选项就是缺省选项. 
      <BR><BR>-m68881 <BR>输出包含68881浮点指令的目标码.对于大多数基于68020的系统这是缺省选项,除非设置编译器时指定了 
      -nfp . <BR><BR>-m68030 <BR>输出68030的目标码.如果编译器按基于68030的系统配置,这个选项就是缺省选项. 
      <BR><BR>-m68040 <BR>输出68040的目标码.如果编译器按基于68040的系统配置,这个选项就是缺省选项. 
      <BR><BR>-m68020-40 
      <BR>输出68040的目标码,但是不使用新指令.生成的代码可以在68020/68881上,也可以在68030或 68040上较有效地运行. 
      <BR><BR>-mfpa <BR>输出包含SUN FPA浮点指令的目标码. <BR><BR>-msoft-float 
      <BR>输出包含浮点库调用的目标码. 警告:所需的库不是GNU CC的组成部分.一般说来GCC使用该机型本地C 
      编译器的相应部件,但是作交叉编译时却不能直接使用.你必须自己管理提供合适的函数库用于交叉编译. <BR><BR>-mshort 
      <BR>认为int类型是16位宽,相当于short int. <BR><BR>-mnobitfield 
      <BR>不使用位域(bit-field)指令. `-m68000'隐含指定了`-mnobitfield'. <BR><BR>-mbitfield 
      <BR>使用位域指令. `-m68020'隐含指定了`-mbitfield'.如果你使用未改装的gcc,这就是 默认选项. 
      <BR><BR>-mrtd <BR>采用另一种函数调用约定,函数接受固定数目的参数,用rtd指令返回,该指令返回时弹出栈内的参数.这个 
      方法能够使调用者节省一条指令,因为他这里不需要弹出参数. 
      <BR>这种调用约定不兼容UNIX的正常调用.因此如果你需要调用UNIX编译器编译的库函数,你就不能使用这个选项. 
      <BR><BR>此外,所有参数数量可变地函数必须提供函数原型(包括printf);否则编译器会生成错误的调用代码. 
      <BR><BR>另外,如果调用函数时携带了过多的参数,编译器将生成严重错误的代码. (正常情况下,多余的参数被安全无害的忽略.) 
      <BR><BR>68010和68020处理器支持rtd指令,但是68000不支持. <BR><BR><BR>下面是针对VAX定义的`-m'选项: 
      <BR><BR><BR>-munix <BR>禁止输出某些跳转指令(aobleq等等), VAX的UNIX汇编器无法跨越长范围(long 
      ranges) 进行处理. <BR><BR>-mgnu <BR>如果使用GNU汇编器,则输出那些跳转指令, <BR><BR>-mg 
      <BR>输出g-format浮点数,取代d-format. <BR><BR>下面是SPARC支持的`-m'选项开关: 
      <BR><BR><BR>-mfpu <BR><BR>-mhard-float <BR>输出包含浮点指令的目标码.这是缺省选项. 
      <BR><BR>-mno-fpu <BR><BR>-msoft-float <BR>输出包含浮点库调用的目标码. 
      警告:没有为SPARC提供GNU浮点库.一般说来使用该机型本地C编译器 
      的相应部件,但是不能直接用于交叉编译.你必须自己安排,提供用于交叉编译的库函数. 
      <BR>-msoft-float改变了输出文件中的调用约定;因此只有用这个选项编译整个程序才有意义. 
      <BR><BR><BR>-mno-epilogue <BR><BR>-mepilogue <BR>使用-mepilogue 
      (缺省)选项时,编译器总是把函数的退出代码放在函数的尾部.任何在函数中间 的退出语句(例如C中的return语句)将产生出跳转指令指向函数尾部. 
      <BR>使用-mno-epilogue选项时,编译器尽量在每个函数退出点嵌入退出代码. <BR><BR><BR>-mno-v8 
      <BR><BR>-mv8 <BR>-msparclite <BR>这三个选项选择不同种类的SPARC系统. 
      <BR>默认情况下(除非特别为Fujitsu SPARClite配置), GCC生成SPARC v7目标码. <BR><BR>-mv8生成SPARC 
      v8目标码.他和v7目标码唯一的区别是,编译器生成整数乘法和整数除法指令, SPARC v8支持该指令,而v7体系不支持. 
      <BR><BR>-msparclite生成SPARClite目标码.增加了SPARClite支持的整数乘法,整数除法单步扫描 (integer 
      divide step and scan (ffs))指令. v7体系不支持这些指令. <BR><BR><BR>-mcypress 
      <BR><BR>-msupersparc <BR>这两个选项选择处理器型号,针对处理器进行代码优化. 
      <BR>-mcypress选项(默认项)使编译器对Cypress CY7C602芯片优化代码, SparcStation/SparcServer 
      3xx系列使用这种芯片.该选项也适用于老式的SparcStation 1, 2, IPX 等机型.. 
      <BR><BR>-msupersparc选项使编译器对SuperSparc处理器优化代码, SparcStation 10, 1000 
      和2000系列使用这种芯片.同时该选项启用完整的SPARC v8指令集. <BR><BR><BR>下面是针对Convex定义的`-m'选项: 
      <BR><BR><BR>-mc1 <BR>输出C1的目标码.当编译器对C1配置时,这是默认选项. <BR>-mc2 
      <BR>输出C2的目标码.当编译器对C2配置时,这是默认选项. <BR>-margcount 
      <BR>在每个参数列表的前面放置一个参数计数字(argument count word).某些不可移植的Convex和Vax 
      程序需要这个参数计数字. (调试器不需要他,除非函数带有变长参数列表;这个信息存放在符号表中.) <BR><BR>-mnoargcount 
      <BR>忽略参数计数字.如果你使用未改装的gcc,这是默认选项. <BR><BR>下面是针对AMD Am29000定义的`-m'选项: 
      <BR><BR>-mdw <BR>生成的目标码认为DW置位,就是说,字节和半字操作由硬件直接支持.该选项是默认选项. <BR>-mnodw 
      <BR>生成的目标码认为DW没有置位. <BR>-mbw <BR>生成的目标码认为系统支持字节和半字写操作.该选项是默认选项. <BR>-mnbw 
      <BR>生成的目标码认为系统不支持字节和半字写操作.该选项隐含开启了`-mnodw'选项. <BR>-msmall 
      <BR>使用小内存模式,小内存模式假设所有函数的地址位于某个256 KB段内,或者所有函数的绝对地址小于256K.这样 
      就可以用call指令代替const, consth, calli指令序列. <BR>-mlarge <BR>假设不能使用call指令;这是默认选项. 
      <BR>-m29050 <BR>输出Am29050的目标码. <BR>-m29000 <BR>输出Am29000的目标码.这是默认选项. 
      <BR>-mkernel-registers <BR>生成的目标码引用gr64-gr95寄存器而不是gr96-gr127寄存器.该选项可以用于编译 
      内核代码,内核需要一组全局寄存器,这些全局寄存器和用户模式使用的寄存器完全无关. <BR>注意,使用这个选项时, 
      `-f'选项中的寄存器名字必须是normal, user-mode, names. <BR><BR><BR>-muser-registers 
      <BR>使用普通全局寄存器集gr96-gr127.这是默认选项. <BR>-mstack-check 
      <BR>在每次堆栈调整后插入一条__msp_check调用.这个选项常用于内核代码. <BR><BR>下面是针对Motorola 
      88K体系定义的`-m'选项: <BR><BR>-m88000 <BR>生成的目标码可以在m88100和m88110上正常工作. 
      <BR>-m88100 <BR>生成的目标码在m88100上工作的最好,但也可以在m88110上运行. <BR>-m88110 
      <BR>生成的目标码在m88110上工作的最好,可能不能在m88100上运行. <BR>-midentify-revision 
      <BR>在汇编器的输出端包含一条ident指令,记录源文件名,编译器名字和版本,时标,以及使用的编译选项, <BR>-mno-underscores 
      <BR>在汇编器的输出端,符号名字前面不添加下划线.默认情况是在每个名字前面增加下划线前缀. 
      <BR>-mno-check-zero-division <BR>-mcheck-zero-division 
      <BR>早期型号的88K系统在除零操作上存在问题,特定情况下许多机器无法自陷.使用这些选项可以避免包含(或可以 
      显明包含)附加的代码,这些代码能够检查除零错,发送例外信号. GCC所有88K的配置默认使用 `-mcheck-zero-division'选项. 
      <BR>-mocs-debug-info <BR>-mno-ocs-debug-info 
      <BR>包含(或忽略)附加的调试信息(关于每个栈架结构中寄存器的使用), 88Open Object Compatibility Standard, 
      ``OCS'',对此信息做了说明. GDB不需要这些额外信息. DG/UX, SVr4,和Delta 88 
      SVr3.2的默认配置是包含调试信息,其他88k机型的默认配置是忽略这个信息. <BR>-mocs-frame-position 
      <BR>-mno-ocs-frame-position <BR>强制(或不要求)把寄存器值存储到栈架结构中的指定位置(按OCS的说明). 
      DG/UX, Delta88 SVr3.2和 BCS的默认配置使用`-mocs-frame-position'选项;其他88k机型的默认配置是 
      `-mno-ocs-frame-position'. <BR>-moptimize-arg-area 
      <BR>-mno-optimize-arg-area <BR>控制如何在堆栈结构中存储函数参数. 
      `-moptimize-arg-area'节省空间,但是有可能宕掉某些 调试器(不是GDB). 
      `-mno-optimize-arg-area'证实比标准选项好.默认情况下GCC不优化参数域. <BR><BR>-mshort-data- 
      <BR>num通过和r0关联,产生较小的数据引用(data reference),这样就可以用单指令调入 
      一个数值(而不是平常的双指令).用户通过选项中的num控制改变哪种数据引用.例如,如果你指定了 
      `-mshort-data-512',那么受影响的数据引用是小于512字节的数据移动. -mshort-data-num选项对大于64K的num 
      无效. <BR><BR>-mserialize-volatile <BR><BR>-mno-serialize-volatile 
      <BR>产生,或不产生代码来保证对易变内存访问的结果一致. <BR>对于常用的处理器子型号, GNU 
      CC始终默认保证这种一致性.如何实现结果一致取决于处理器子型号. 
      <BR><BR>m88100处理器不对内存引用重新安排,因此访问结果始终一致.如果使用了`-m88100'选项, GNU CC 
      不产生任何针对结果一致的特别指令. 
      <BR><BR>m88110处理器的内存引用顺序并不始终符合指令请求的引用顺序.特别是某条读取指令可能在先前的存储指令之前执行. 
      多处理器环境下,乱序访问扰乱了易变内存访问的结果一致.因此当使用`-m88000'或`-m88110' 选项时, GNU 
      CC在适当的时候产生特别的指令迫使执行顺序正确. 
      <BR><BR>这些用于保证一致性的额外代码有可能影响程序的性能.如果你确认能够安全地放弃这种保证,你可以使用 
      `-mno-serialize-volatile'选项. 
      <BR><BR>如果你使用`-m88100'选项,但是需要在m88110处理器上运行时的结果一致,你应该加上 
      `-mserialize-volatile'选项. </P>
      <DIV 
      style="FONT-SIZE: 12px; WIDTH: 100%; FONT-FAMILY: Courier 宋体; TEXT-ALIGN: center"><A 
      href="http://21ic.com/news/n5203c79.aspx">上一页</A> <A 
      href="http://21ic.com/news/n5203c79.aspx">[1]</A> <SPAN 
      class=gray>[2]</SPAN> <A 
      href="http://21ic.com/news/n5203c79p3.aspx">[3]</A> <A 
      href="http://21ic.com/news/n5203c79p3.aspx">下一页</A> </DIV>
      <SCRIPT event=onload for=window type=text/javascript>ImgLoad(document.getElementById("BodyLabel"));</SCRIPT>
      </DIV><BR><BR>
      <TABLE id=dlPages style="WIDTH: 95%; BORDER-COLLAPSE: collapse" 
      cellSpacing=0 align=center border=0>
        <TBODY>
        <TR>
          <TD style="HEIGHT: 20px" colSpan=2>【内容导航】 </TD></TR>
        <TR>
          <TD style="WIDTH: 50%; HEIGHT: 20px">第1页:<A 
            href="http://21ic.com/news/n5203c79.aspx">GCC 中文手册</A> </TD>
          <TD style="WIDTH: 50%; HEIGHT: 20px">第2页:<A class=highlight 
            href="http://21ic.com/news/n5203c79p2.aspx">GCC 中文手册(中)</A> </TD></TR>
        <TR>
          <TD style="WIDTH: 50%; HEIGHT: 20px">第3页:<A 
            href="http://21ic.com/news/n5203c79p3.aspx">GCC 中文手册(下)</A> 
        </TD></TR></TBODY></TABLE>
      <TABLE cellSpacing=0 cellPadding=0 width="97%">
        <TBODY>
        <TR>
          <TD align=right>
            <TABLE>
              <TBODY>
              <TR>
                <TD>阅读:<SPAN id=HitsLabel>199</SPAN> 次<BR>录入:<SPAN 
                  id=MemberNameLabel><A 
                  href="http://21ic.com/news/memberProfile.aspx?id=10" 
                  target=_blank>录入员001</A></SPAN><BR><BR></TD></TR></TBODY></TABLE></TD></TR>
        <TR>
          <TD align=right>【 <A href="http://21ic.com/news/remark.aspx?ID=5203" 
            target=_blank>评论</A> 】 【 <A 
            href="http://21ic.com/news/mail.aspx?ID=5203" target=_blank>推荐</A> 】 
          </TD></TR></TBODY></TABLE></TD>
    <TD class=mr></TD></TR></TBODY></TABLE></DIV></DIV>
<DIV class=mframe>
<TABLE cellSpacing=0 cellPadding=0 width="100%">
  <TBODY>
  <TR>
    <TD class=tl></TD>
    <TD class=tm><A style="CURSOR: hand" 
      href="http://21ic.com/news/search.aspx?Where=Nkey&amp;Keyword=GCC"><SPAN 
      class=tt>相关资料 连接</SPAN></A> </TD>
    <TD class=tr></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width="100%">
  <TBODY>
  <TR>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -