?? gcc中文手冊3.htm
字號:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<!-- saved from url=(0036)http://21ic.com/news/n5203c79p3.aspx -->
<HTML lang=gb2312 xmlns="http://www.w3.org/1999/xhtml"><HEAD><TITLE>GCC 中文手冊 - 21IC中國電子網</TITLE>
<META http-equiv=content-type content=text/html;charset=gb2312><LINK
href="favicon.ico" type=image/x-icon rel=icon><LINK href="favicon.ico"
type=image/x-icon rel="shortcut icon">
<META content="GCC 中文手冊" name=description>
<META content=21IC.com name=keywords><LINK href="GCC中文手冊3.files/style.css"
type=text/css rel=stylesheet>
<SCRIPT src="GCC中文手冊3.files/flash.js" type=text/javascript></SCRIPT>
<SCRIPT type=text/javascript>
var thumbWidth=120;var thumbHeight=0;
var thumbHWidth=thumbWidth;var thumbHHeight=thumbHeight;
</SCRIPT>
<SCRIPT src="GCC中文手冊3.files/thumbnail.js" type=text/javascript></SCRIPT>
<SCRIPT language=javaScript src="GCC中文手冊3.files/scroll.js"
type=text/javascript></SCRIPT>
<SCRIPT language=javaScript src="GCC中文手冊3.files/imgResize.js"
type=text/javascript></SCRIPT>
<META content="MSHTML 6.00.2800.1106" name=GENERATOR></HEAD>
<BODY><SPAN id=printScript>
<SCRIPT language=javascript type=text/javascript>
<!--
function ContentSize(size)
{
var obj=document.all.BodyLabel;
obj.style.fontSize=size+"px";
}
-->
</SCRIPT>
</SPAN>
<SCRIPT language=javascript src="GCC中文手冊3.files/print.js"
type=text/javascript></SCRIPT>
<TABLE id=navbar cellSpacing=0 cellPadding=0 align=center>
<TBODY>
<TR>
<TD class=l></TD>
<TD class=m>
<SCRIPT language=javascript1.2 src="GCC中文手冊3.files/popmenu.js"
type=text/javascript></SCRIPT>
<SPAN id=dlSortNav><SPAN><A href="http://21ic.com/">首頁</A>
</SPAN><SPAN><IMG alt="" src="GCC中文手冊3.files/navbar_separator.gif"
align=absMiddle> </SPAN><SPAN><A
href="http://21ic.com/news/c8.aspx">新聞</A> </SPAN><SPAN><IMG alt=""
src="GCC中文手冊3.files/navbar_separator.gif" align=absMiddle> </SPAN><SPAN><A
onmouseover=showmenu(event,29,1,false) onmouseout=delayhidemenu()
href="http://21ic.com/news/c29.aspx">應用</A> </SPAN><SPAN><IMG alt=""
src="GCC中文手冊3.files/navbar_separator.gif" align=absMiddle> </SPAN><SPAN><A
onmouseover=showmenu(event,26,1,false) onmouseout=delayhidemenu()
href="http://21ic.com/news/c26.aspx">新品</A> </SPAN><SPAN><IMG alt=""
src="GCC中文手冊3.files/navbar_separator.gif" align=absMiddle> </SPAN><SPAN><A
onmouseover=showmenu(event,27,1,false) onmouseout=delayhidemenu()
href="http://21ic.com/news/c27.aspx">市場</A> </SPAN><SPAN><IMG alt=""
src="GCC中文手冊3.files/navbar_separator.gif" align=absMiddle> </SPAN><SPAN><A
onmouseover=showmenu(event,28,1,false) onmouseout=delayhidemenu()
href="http://21ic.com/news/c28.aspx">專訪</A> </SPAN><SPAN><IMG alt=""
src="GCC中文手冊3.files/navbar_separator.gif" align=absMiddle> </SPAN><SPAN><A
onmouseover=showmenu(event,5,1,false) onmouseout=delayhidemenu()
href="http://job.21ic.com/">人才</A> </SPAN><SPAN><IMG alt=""
src="GCC中文手冊3.files/navbar_separator.gif" align=absMiddle> </SPAN><SPAN><A
onmouseover=showmenu(event,62,1,false) onmouseout=delayhidemenu()
href="http://21ic.com/news/c62.aspx">下載</A> </SPAN><SPAN><IMG alt=""
src="GCC中文手冊3.files/navbar_separator.gif" align=absMiddle> </SPAN><SPAN><A
onmouseover=showmenu(event,2,1,false) onmouseout=delayhidemenu()
href="http://21icsearch.com/">資料(PDF)</A> </SPAN><SPAN><IMG alt=""
src="GCC中文手冊3.files/navbar_separator.gif" align=absMiddle> </SPAN><SPAN><A
onmouseover=showmenu(event,31,1,false) onmouseout=delayhidemenu()
href="http://21ic.com/news/c31.aspx">活動</A> </SPAN><SPAN><IMG alt=""
src="GCC中文手冊3.files/navbar_separator.gif" align=absMiddle> </SPAN><SPAN><A
onmouseover=showmenu(event,30,1,false) onmouseout=delayhidemenu()
href="http://21ic.com/news/c30.aspx">站內</A> </SPAN><SPAN><IMG alt=""
src="GCC中文手冊3.files/navbar_separator.gif" align=absMiddle> </SPAN><SPAN><A
onmouseover=showmenu(event,7,1,false) onmouseout=delayhidemenu()
href="http://21ic.com/news/c7.aspx">廠商</A> </SPAN><SPAN><IMG alt=""
src="GCC中文手冊3.files/navbar_separator.gif" align=absMiddle> </SPAN><SPAN><A
href="http://kucun.21ic.com/">庫存</A> </SPAN><SPAN><IMG alt=""
src="GCC中文手冊3.files/navbar_separator.gif" align=absMiddle> </SPAN><SPAN><A
onmouseover=showmenu(event,4,1,false) onmouseout=delayhidemenu()
href="http://shop.21ic.com/">商店</A> </SPAN><SPAN><IMG alt=""
src="GCC中文手冊3.files/navbar_separator.gif" align=absMiddle> </SPAN><SPAN><A
href="http://21icbbs.com/">社區</A> </SPAN></SPAN></TD>
<TD class=r></TD></TR></TBODY></TABLE>
<TABLE id=navsub cellSpacing=0 cellPadding=0>
<TBODY>
<TR>
<TD class=l></TD>
<TD class=m> <A
href="http://21ic.com/news/default.aspx">21IC中國電子網</A> → <A
href="http://21ic.com/news/c62.aspx">下載</A> → <A
href="http://21ic.com/news/c79.aspx">嵌入式系統</A> </TD>
<TD class=r></TD></TR></TBODY></TABLE>
<DIV class=mframe>
<TABLE cellSpacing=0 cellPadding=0 width="100%">
<TBODY>
<TR>
<TD class=tl></TD>
<TD class=tm><SPAN class=tt>詳文</SPAN> </TD>
<TD class=tr></TD></TR></TBODY></TABLE>
<DIV id=printBody>
<TABLE id=middle
style="TABLE-LAYOUT: fixed; WORD-BREAK: break-all; TEXT-ALIGN: left"
cellSpacing=0 cellPadding=0 align=center>
<TBODY>
<TR>
<TD class=ml></TD>
<TD class=mm vAlign=top><BR>
<DIV align=center>
<H1 class=aTitle>GCC 中文手冊</H1></DIV>
<TABLE width="97%" align=center>
<TBODY>
<TR>
<TD width=120>[日期:<SPAN id=TimeLabel>2005-1-3</SPAN>]</TD>
<TD align=middle>來源:<SPAN id=SourceLabel>21icbbs</SPAN>
作者:<SPAN id=AuthorLabel>徐明</SPAN></TD>
<TD align=right width=100>[字體:<A
href="javascript:ContentSize(16)">大</A> <A
href="javascript:ContentSize(14)">中</A> <A
href="javascript:ContentSize(12)">小</A>] </TD></TR></TBODY></TABLE>
<DIV class=content id=BodyLabel
style="PADDING-RIGHT: 10px; DISPLAY: block; PADDING-LEFT: 10px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px">
<P>-msvr4 <BR><BR>-msvr3 <BR>打開(`-msvr4')或關閉(`-msvr3')和System
V第四版(SVr4)相關的 編譯器擴展.效果如下: <BR> *
<BR>輸出哪種匯編語法(你可以使用`-mversion-03.00'選項單獨選擇). <BR> *
<BR>`-msvr4'使C預處理器識別`#pragma weak'指令 <BR> *
<BR>`-msvr4'使GCC輸出額外的聲明指令(declaration directive),用于SVr4. <BR>除了SVr4配置,
`-msvr3'是所有m88K配置的默認選項. <BR><BR><BR>-mtrap-large-shift
<BR>-mhandle-large-shift
<BR>包含一些指令,用于檢測大于31位的位移(bit-shift);根據相應的選項,對這樣的位移發出自陷
(trap)或執行適當的處理代碼.默認情況下, GCC對大位移不做特別處理. <BR><BR>-muse-div-instruction
<BR>很早以前的88K型號沒有(div)除法指令,因此默認情況下GCC避免產生這條指令.而這個選項告訴GCC該指令是 安全的.
<BR><BR>-mversion-03.00 <BR>在DG/UX配置中存在兩種風格的SVr4.這個選項修改-msvr4
,選擇hybrid-COFF或 real-ELF風格.其他配置均忽略該選項. <BR><BR>-mwarn-passed-structs
<BR>如果某個函數把結構當做參數或結果傳遞, GCC發出警告.隨著C語言的發展,人們已經改變了傳遞結構的約定, 它往往導致移植問題.默認情況下,
GCC不會發出警告. <BR><BR>下面的選項用于<A title=IBM href="http://ibm.com/">IBM</A>
RS6000: <BR><BR>-mfp-in-toc <BR><BR>-mno-fp-in-toc
<BR>控制是否把浮點常量放到內容表(TOC)中,內容表存放所有的全局變量和函數地址.默認情況下, GCC把浮點常量放到 這里;如果TOC溢出,
`-mno-fp-in-toc'選項能夠減少TOC的大小,這樣就可以避免溢出. <BR><BR>下面的`-m'選項用于<A title=IBM
href="http://ibm.com/">IBM</A> RT PC: <BR><BR>-min-line-mul
<BR>對于整數乘法使用嵌入代碼.這是默認選項. <BR>-mcall-lib-mul <BR>對于整數乘法使用lmul$$ .
<BR>-mfull-fp-blocks <BR>生成全尺寸浮點數據塊,包括<A title=IBM
href="http://ibm.com/">IBM</A>建議的最少數量的活動空間(scratch space).這是默認選項.
<BR>-mminimum-fp-blocks
<BR>不要在浮點數據塊中包括額外的活動空間.這樣就產生較小但是略慢的可執行程序,因為活動空間必須動態分配.
<BR>-mfp-arg-in-fpregs <BR>采用不兼容<A title=IBM
href="http://ibm.com/">IBM</A>調用約定的調用序列,通過浮點寄存器傳送浮點參數.注意,如果指定了這個選項,
varargs.h和stdargs.h將無法支持浮點單元. <BR><BR>-mfp-arg-in-gregs
<BR>使用正常的調用約定處理浮點參數.這是默認選項. <BR><BR>-mhc-struct-return
<BR>通過內存返回大于一個字的結構,而不是通過寄存器.用于兼容MetaWare HighC (hc)編譯器.使用
`-fpcc-struct-return'選項可以兼容Portable C編譯器(pcc).
<BR><BR>-mnohc-struct-return <BR>如果可以,通過寄存器返回某些大于一個字的結構.這是默認選項.如果打算兼容<A
title=IBM href="http://ibm.com/">IBM</A>提供的編譯器,請使用
`-fpcc-struct-return'或`-mhc-struct-return'選項.
<BR><BR>下面的`-m'選項用于MIPS家族的計算機: <BR><BR>-mcpu=cpu-type
<BR>生成指令的時候,假設默認的機器類型是cpu-type .默認情況下的cpu-type是 default,
GCC將選取任何機型上都是最長周期時間的指令,這樣才能使代碼在所有的MIPS處理器上以合理 的速度運行. cpu-type的其他選擇是r2000,
r3000, r4000,和 r6000.雖然選定某個cpu-type后, GCC將針對選定的芯片安排對應的工作,但是如果 不指定??
-mips2或-mips3選項,編譯器不會輸出任何不符合MIPS ISA (instruction set architecture)一級的代碼.
<BR><BR>-mips2 <BR>輸出MIPS ISA二級指令(可能的擴展,如平方根指令). -mcpu=r4000或-mcpu=r6000
選項必須和-mips2聯用. <BR><BR>-mips3 <BR>輸出MIPS ISA三級指令(64位指令).
-mcpu=r4000選項必須和-mips2聯用. (譯注:疑為-mips3) <BR><BR>-mint64 <BR>-mlong64
<BR>-mlonglong128 <BR>這些選項目前不起作用. <BR><BR>-mmips-as
<BR>產生用于MIPS匯編器的代碼,同時使用mips-tfile添加普通的調試信息.對于大多數平臺這是
默認選項,除了OSF/1參考平臺,它使用OSF/rose目標格式.如果打開了任一個-ggdb, -gstabs,或-gstabs+選項開關,
mips-tfile程序就把stab封裝在MIPS ECOFF里面. <BR><BR>-mgas
<BR>產生用于GNU匯編器的代碼.在OSF/1參考平臺上這是默認選項,它使用OSF/rose目標格式. <BR><BR>-mrnames
<BR>-mno-rnames <BR>-mrnames開關選項告訴輸出代碼使用MIPS軟件名稱說明寄存器,而不是硬件名稱(就是說,用
a0代替$4). GNU匯編器不支持-mrnames選項,而MIPS匯編器則運行MIPS C預處理器處理源文件. -mno-rnames是默認選項.
<BR><BR>-mgpopt <BR>-mno-gpopt
<BR>-mgpopt開關選項要求在正文段中把所有的數據聲明寫到指令前面,使各種MIPS匯編器對短類型全局 或靜態數據項(short global
or static data items)輸出單字內存訪問而不是雙字內存訪問.當打開編譯優化 時,這是默認功能.
<BR><BR><BR>-mstats <BR>-mno-stats <BR>每次處理完非嵌入函數(non-inline function)后,
-mstats開關選項使編譯器向標準錯誤文件 輸出一行關于程序的統計資料(保存的寄存器數目,堆棧大小,等等). <BR><BR>-mmemcpy
<BR>-mno-memcpy <BR>-mmemcpy開關選項使所有的塊移動操作調用適當的string函數(memcpy或
bcopy),而不是生成嵌入代碼. <BR><BR>-mmips-tfile <BR>-mno-mips-tfile
<BR>當MIPS匯編器生成mips-tfile文件(用于幫助調試)后, -mno-mips-tfile
開關選項阻止編譯器使用mips-tfile后期處理(postprocess)目標文件.不運行 mips-tfile就沒有調試器關注的局部變量.另外,
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -