青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

chaosuper85

C++博客 首頁 新隨筆 聯系 聚合 管理
  118 Posts :: 0 Stories :: 3 Comments :: 0 Trackbacks

GCC 5

Section: GNU Tools (1)
Updated: 2003/12/05
Sponsor: GCC Casino Winning Content

下面的`-m'選項用于HPPA族計算機:

-mpa-risc-1-0
生成PA 1.0處理器的目標碼.
-mpa-risc-1-1
生成PA 1.1處理器的目標碼.

 

-mkernel
生成適用于內核的目標碼.特別要避免add指令,它有一個參數是DP寄存器;addil 代替add指令.這樣可以避免HP-UX連接器的某個嚴重bug.

 

-mshared-libs
生成能夠連接HP-UX共享庫的目標碼.該選項還沒有實現全部功能,PA目標默認為關閉.使用這個選項會導致 編譯器生成錯誤的目標碼.

 

-mno-shared-libs
不生成連接HP-UX共享庫的目標碼.這是PA目標的默認選項.

 

-mlong-calls
生成的目標碼允許同一個源文件中的函數調用,調用點和被調函數的距離可以超過256K之遠.不需要打開這個開關選項, 除非連接器給出``branch out of range errors``這樣的錯誤.

 

-mdisable-fpregs
防止任何情況下使用浮點寄存器.編譯內核需要這個選項,內核切換浮點寄存器的執行環境速度非常緩慢.如果打開了這個 開關選項同時試圖浮點操作,編譯將失敗.

 

-mdisable-indexing
防止編譯器使用索引地址模式(indexing address mode).這樣在MACH上編譯MIG生成的代碼時,可以 避免一些非常晦澀的問題.

 

-mtrailing-colon
在標記定義(label definition)的末尾添加一個冒號(用于ELF匯編器).

 

下面的`-m'選項用于Intel 80960族計算機:

-mcpu-type
默認機器類型為cpu-type ,使編譯器產生對應的指令,地址模式和內存對齊.默認的 cpu-typekb;其他選擇有ka, mc, ca, cf, sa,sb.

 

-mnumerics
-msoft-float
-mnumerics開關選項指出處理器不支持浮點指令. -msoft-float開關選項指出不應該認為 機器支持浮點操作.

 

-mleaf-procedures
-mno-leaf-procedures
企圖(或防止)改變葉過程(leaf procedure),使其可被bal指令以及call指令 調用.對于直接函數調用,如果bal指令能夠被匯編器或連接器替換,這可以產生更有效的代碼,但是其他情況下 產生較低效的代碼,例如通過函數指針調用函數,或使用了不支持這種優化的連接器.

 

-mtail-call
-mno-tail-call
執行(或不執行)更多的嘗試(除過編譯器那些機器無關部分),優化進入分支的尾遞歸(tail-recursive)調用.你 可能不需要這個,因為檢測什么地方無效沒有全部完成.默認開關是-mno-tail-call.

 

-mcomplex-addr
-mno-complex-addr
認為(或不認為)在當前的i960設備上,值得使用復合地址模式(complex addressing mode).復合地址模式 可能不值得用到K系列,但是一定值得用在C系列.目前除了CBCC處理器,其他處理器上 -mcomplex-addr是默認選項.

 

-mcode-align
-mno-code-align
把目標碼對齊到8字節邊界上(或者不必),這樣讀取會快一些.目前只對C系列默認打開.

 

-mic-compat
-mic2.0-compat
-mic3.0-compat
兼容iC960 v2.0v3.0.

 

-masm-compat
-mintel-asm
兼容iC960匯編器.

 

-mstrict-align
-mno-strict-align
不允許(或允許)邊界不對齊的訪問.

 

-mold-align
使結構對齊(structure-alignment)兼容Intelgcc發行版本1.3 (基于gcc 1.37).目前 這個選項有點問題,因為#pragma align 1總是作同樣的設定,而且無法關掉.

 

下面的`-m'選項用于DEC Alpha設備:

-mno-soft-float
-msoft-float
使用(或不使用)硬件浮點指令進行浮點運算.打開-msoft-float,將使用 `libgcc1.c'中的函數執行浮點運算.除非它們被仿真浮點操作的例程替換,或者類似,它們被編譯為調用 仿真例程,這些例程將發出浮點操作.如果你為不帶浮點操作的Alpha編譯程序,你必須確保建立了這個庫,以便不調用 仿真例程.

注意,不帶浮點操作的Alpha也要求擁有浮點寄存器.

 

-mfp-reg
-mno-fp-regs
生成使用(或不使用)浮點寄存器群的目標代碼. -mno-fp-regs包含有-msoft-float 開關選項.如果不使用浮點寄存器,浮點操作數就象整數一樣通過整數寄存器傳送,浮點運算結果放到$0而不是$f0.這是非標準 調用,因此任何帶有浮點參數或返回值的函數,如果被-mno-fp-regs開關編譯過的目標碼調用,它也必須 用這個選項編譯.

這個選項的典型用法是建立內核,內核不使用任何浮點寄存器,因此沒必要保存和恢復這些寄存器.

 

下面附加的選項出現在System V第四版中,用于兼容這些系統中的其他編譯器:

-G
SVr4系統中, gcc出于兼容接受了`-G'選項(然后傳遞給連接器).可是我們建議使用 `-symbolic'`-shared'選項,而不在gcc命令行上出現連接選項.

 

-Qy
驗證編譯器用的工具的版本,輸出到.ident匯編指令.

 

-Qn
制止輸出端的.ident指令(默認選項).

 

-YP,dirs
對于`-l'指定的庫文件,只搜索dirs.你可以在dirs中用冒號隔開各個 目錄項.

 

-Ym,dir
dir目錄中尋找M4預處理器.匯編器使用這個選項.

 

代碼生成選項(CODE GENERATION OPTION)

下面的選項和平臺無關,用于控制目標碼生成的接口約定.

大部分選項以`-f'開始.這些選項擁有確定和否定兩種格式; `-ffoo'的否定格式是 `-fno-foo'.后面的描述將只列舉其中的一個格式---非默認的格式.你可以通過添加或去掉 `no-'推測出另一個格式.

-fnonnull-objects
假設通過引用(reference)取得的對象不為null (C++).

一般說來, GNU C++對通過引用取得的對象作保守假設.例如,編譯器一定會檢查下似代碼中的a不為 null:

obj &a = g (); a.f (2);

檢查類似的引用需要額外的代碼,然而對于很多程序是不必要的.如果你的程序不要求這種檢查,你可以用 `-fnonnull-objects'選項忽略它.

 

-fpcc-struct-return
函數返回structunion值時,采用和本地編譯器相同的參數約定.對于較小的結構, 這種約定的效率偏低,而且很多機器上不能重入;它的優點是允許GCC編譯的目標碼和PCC編譯的目標碼互相調用.

 

-freg-struct-return
一有可能就通過寄存器返回structunion函數值.對于較小的結構,它比 -fpcc-struct-return更有效率.

如果既沒有指定-fpcc-struct-return ,也沒有指定-freg-struct-return, GNU CC默認使用目標機的標準約定.如果沒有標準約定, GNU CC默認采用-fpcc-struct-return.

 

-fshort-enums
enum類型只分配它聲明的值域范圍的字節數.就是說, enum類型等于大小足夠的 最小整數類型.

 

-fshort-double
使double類型的大小和float一樣.

 

-fshared-data
要求編譯結果的數據和非const變量是共享數據,而不是私有數據.這種差別僅在某些操作系統上面有意義, 那里的共享數據在同一個程序的若干進程間共享,而私有數據在每個進程內都有副件.

 

-fno-common
即使未初始化的全局變量也分配在目標文件的bss,而不是把它們當做普通塊(common block)建立.這樣的 結果是,如果在兩個不同的編譯結果中聲明了同一個變量(沒使用extern ),連接它們時會產生錯誤. 這個選項可能有用的唯一情況是,你希望確認程序能在其他系統上運行,而其他系統總是這么做.

 

-fno-ident
忽略`#ident'指令.

 

-fno-gnu-linker
不要把全局初始化部件(C++的構造子和解構子)輸出為GNU連接器使用的格式(GNU連接器是標準方法的系統 上).當你打算使用非GNU連接器的時候可以用這個選項,GNU連接器也需要collect2程序確保系統連接器 放入構造子(constructor)和解構子(destructor). (GNU CC的發布包中包含有collect2 程序.)對于必須使用collect2的系統,編譯器驅動程序gcc自動配置為這么做.

 

-finhibit-size-directive
不要輸出.size匯編指令,或其他類似指令,當某個函數一分為二,兩部分在內存中距離很遠時會引起問題. 當編譯`crtstuff.c'時需要這個選項;其他情況下都不應該使用.

 

-fverbose-asm
輸出匯編代碼時放些額外的注釋信息.這個選項僅用于確實需要閱讀匯編輸出的時候(可能調試編譯器自己的時候).

 

-fvolatile
使編譯器認為所有通過指針訪問的內存是易變內存(volatile).

 

-fvolatile-global
使編譯器認為所有的外部和全局變量是易變內存.

 

-fpic
如果支持這種目標機,編譯器就生成位置無關目標碼.適用于共享庫(shared library).

 

-fPIC
如果支持這種目標機,編譯器就輸出位置無關目標碼.適用于動態連接(dynamic linking),即使分支需要大范圍 轉移.

 

-ffixed-reg
把名為reg的寄存器按固定寄存器看待(fixed register);生成的目標碼不應該引用它(除了或許 用作棧指針,幀指針,或其他固定的角色).

reg必須是寄存器的名字.寄存器名字取決于機器,用機器描述宏文件的REGISTER_NAMES宏 定義.

這個選項沒有否定格式,因為它列出三路選擇.

 

-fcall-used-reg
把名為reg的寄存器按可分配寄存器看待,不能在函數調用間使用.可以臨時使用或當做變量使用,生存期 不超過一個函數.這樣編譯的函數無需保存和恢復reg寄存器.

如果在可執行模塊中,把這個選項說明的寄存器用作固定角色將會產生災難性結果,如棧指針或幀指針.

這個選項沒有否定格式,因為它列出三路選擇.

 

-fcall-saved-reg
把名為reg的寄存器按函數保護的可分配寄存器看待.可以臨時使用或當做變量使用,它甚至能在函數間 生存.這樣編譯的函數會保存和恢復使用中的reg寄存器.

如果在可執行模塊中,把這個選項說明的寄存器用作固定角色將會產生災難性結果,如棧指針或幀指針.

另一種災難是用這個選項說明的寄存器返回函數值.

這個選項沒有否定格式,因為它列出三路選擇.

 

PRAGMAS

GNU C++支持兩條`#pragma'指令使同一個頭文件有兩個用途:對象類的接口定義, 對象類完整的內容定義.

#pragma interface
(僅對C++)在定義對象類的頭文件中,使用這個指令可以節省大部分采用該類的目標文件的大小.一般說來,某些信息 (內嵌成員函數的備份副件,調試信息,實現虛函數的內部表格等)的本地副件必須保存在包含類定義的各個目標文件中.使用這個 pragma指令能夠避免這樣的復制.當編譯中引用包含`#pragma interface'指令的頭文件時,就 不會產生這些輔助信息(除非輸入的主文件使用了`#pragma implementation'指令).作為替代,目標文件 將包含可被連接時解析的引用(reference).

 

#pragma implementation
#pragma implementation "objects.h"
(僅對C++)如果要求從頭文件產生完整的輸出(并且全局可見),你應該在主輸入文件中使用這條pragma.頭文件 中應該依次使用`#pragma interface'指令.implementation文件中將產生全部內嵌成員函數 的備份,調試信息,實現虛函數的內部表格等.

如果`#pragma implementation'不帶參數,它指的是和源文件有相同基本名的包含文件;例如, `allclass.cc', `#pragma implementation'等于`#pragma implementation allclass.h'.如果某個implementation文件需要從多個頭文件引入代碼,就應該 使用這個字符串參數.

不可能把一個頭文件里面的內容分割到多個implementation文件中.

 

文件(FILE)

file.c             C源文件
file.h             C頭文件(預處理文件)
file.i            預處理后的C源文件
file.C             C++源文件
file.cc            C++源文件
file.cxx           C++源文件
file.m             Objective-C源文件
file.s            匯編語言文件
file.o            目標文件
a.out             連接的輸出文件
TMPDIR/cc*        臨時文件
LIBDIR/cpp        預處理器
LIBDIR/cc1         C編譯器
LIBDIR/cc1plus     C++編譯器
LIBDIR/collect    某些機器需要的連接器前端(front end)程序
LIBDIR/libgcc.a    GCC子例程(subroutine)/lib/crt[01n].o   啟動例程(start-up)
LIBDIR/ccrt0       C++的附加啟動例程
/lib/libc.a       標準C,另見intro (3)
/usr/include       #include文件的標準目錄
LIBDIR/include     #include文件的標準gcc目錄
LIBDIR/g++-include #include文件的附加g++目錄
LIBDIR通常為/usr/local/lib/machine/version.
TMPDIR
來自環境變量TMPDIR (如果存在,缺省為/usr/tmp ,否則為 /tmp).

 

BUGS

關于報告差錯的指導請查閱GCC手冊.

版權(COPYING)

Copyright 1991, 1992, 1993 Free Software Foundation, Inc.

Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.

Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.

Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions, except that this permission notice may be included in translations approved by the Free Software Foundation instead of in the original English.

作者(AUTHORS)

關于GNU CC的奉獻者請查閱GUN CC手冊.
posted on 2009-08-03 14:32 chaosuper 閱讀(651) 評論(0)  編輯 收藏 引用

只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            免费在线观看成人av| 亚洲国产岛国毛片在线| 欧美日韩另类一区| 日韩视频专区| 一区二区三区四区国产| 国产欧美日韩视频一区二区三区 | 亚洲国内自拍| 欧美激情一区二区三区全黄| 欧美视频成人| 久久久噜噜噜久久狠狠50岁| 久久综合伊人77777麻豆| 韩国v欧美v日本v亚洲v| 亚洲电影自拍| 国产精品久久久久国产精品日日 | 欧美一区二区三区四区视频| 亚洲国产黄色片| 亚洲精品一区二区三区婷婷月| 国产欧美日韩综合一区在线观看| 麻豆国产va免费精品高清在线| 欧美.www| 欧美r片在线| 香蕉成人伊视频在线观看| 久久先锋影音| 久久久久久久一区| 国产精品久久久久久久app| 日韩午夜三级在线| 欧美一区二区三区四区夜夜大片| 亚洲电影天堂av| 久久精精品视频| 一本色道久久综合狠狠躁篇的优点 | 亚洲黄色成人网| 激情丁香综合| 亚洲欧美色婷婷| 久久综合五月天婷婷伊人| 久久精品国产亚洲一区二区三区| 久久黄金**| 久久免费视频这里只有精品| 国产日本欧美视频| 久久久久国产精品人| 久久精品免费| 亚洲黄色免费| 国产精品久久久91| 亚洲综合激情| 久久婷婷丁香| 亚洲欧洲一区二区三区在线观看 | 国产精品一区二区三区四区五区 | 亚洲国产第一| 亚洲视频大全| 久久一二三四| 久久尤物电影视频在线观看| 激情亚洲一区二区三区四区| 欧美—级a级欧美特级ar全黄| 日韩视频在线一区二区| 亚洲一区二区三区四区五区午夜| 国产专区综合网| 欧美色区777第一页| 在线一区观看| 亚洲国产黄色| 欧美成年人网| 久久久亚洲国产美女国产盗摄| 一本色道久久综合亚洲精品不| 欧美日韩国产精品一区二区亚洲| 欧美综合国产| 久久国产视频网站| 午夜精彩视频在线观看不卡| 亚洲国产成人久久综合| 美女国内精品自产拍在线播放| 99精品国产热久久91蜜凸| 国产亚洲欧美另类中文 | 99av国产精品欲麻豆| 亚洲欧洲日本专区| 在线观看91久久久久久| 国产精品乱人伦中文| 国产精品视频yy9099| 欧美日韩综合另类| 亚洲欧美另类在线| 一本一本a久久| 欧美资源在线观看| 免费成人性网站| 中文高清一区| 午夜精品99久久免费| 久久色在线观看| 国产精品一二| 99re热这里只有精品免费视频| 一区二区久久久久| 久久蜜臀精品av| 在线亚洲激情| 欧美精品粉嫩高潮一区二区| 国产麻豆精品视频| 亚洲美女少妇无套啪啪呻吟| 久久精品五月婷婷| 亚洲精品久久久久久久久久久| 亚洲午夜精品17c| 欧美日韩免费看| av成人毛片| 亚洲色图自拍| 欧美精品导航| 亚洲激情专区| 亚洲韩国青草视频| 欧美大片免费久久精品三p | 久久久久国色av免费观看性色| 日韩一级不卡| 欧美日韩精品在线视频| 欧美日韩亚洲一区二区三区四区| 狠狠色伊人亚洲综合成人| 欧美午夜精品电影| 亚洲国产综合在线看不卡| 狠狠做深爱婷婷久久综合一区| 久久精品二区三区| 欧美国产亚洲精品久久久8v| 亚洲一区视频| 一区二区毛片| 99精品视频免费全部在线| 久久精品官网| 国产精品午夜av在线| 欧美日韩高清一区| 欧美巨乳波霸| 欧美日韩不卡合集视频| 欧美精品一区二区精品网| 欧美日韩亚洲免费| 欧美日本中文字幕| 国产婷婷色一区二区三区在线| 好吊色欧美一区二区三区四区| 亚洲第一黄色| 亚洲欧美一区二区原创| 亚洲第一精品福利| 在线欧美亚洲| 亚洲激情视频在线播放| 亚洲欧洲一区二区在线播放| 亚洲影院一区| 国产精品久久看| 美玉足脚交一区二区三区图片| 99re视频这里只有精品| 免费欧美高清视频| 国产精品卡一卡二| 在线成人亚洲| 午夜精品福利一区二区三区av| 亚洲一区高清| 国产视频在线观看一区二区| 欧美成人69av| 国产精品亚洲片夜色在线| 午夜精品在线| 91久久国产综合久久91精品网站| 欧美精品在线观看| 性8sex亚洲区入口| 欧美亚洲午夜视频在线观看| 欧美一区二区视频在线| 国产精品国产福利国产秒拍| 美日韩在线观看| 久久精品国产清自在天天线| 欧美成年人在线观看| 欧美精品一区二区三区视频| 国产精品推荐精品| 欧美午夜国产| 久久久久久有精品国产| 麻豆91精品91久久久的内涵| 欧美福利网址| 国产一区久久久| 欧美在线视频一区二区| 亚洲图片欧洲图片av| 欧美午夜精品久久久久免费视| 一区二区三区**美女毛片 | 亚洲破处大片| 欧美不卡在线视频| 欧美一区二区三区视频在线| 国产精一区二区三区| 午夜国产精品影院在线观看| 翔田千里一区二区| 久久riav二区三区| 欲香欲色天天天综合和网| 美腿丝袜亚洲色图| 亚洲欧美国产视频| 狠狠狠色丁香婷婷综合久久五月 | 亚洲激情av在线| 久久久精品一区二区三区| 国产一区视频网站| 久久网站热最新地址| 久久亚洲高清| 亚洲三级视频| 亚洲一品av免费观看| 国产欧美精品一区aⅴ影院| 久久婷婷国产综合精品青草| 另类酷文…触手系列精品集v1小说| 精品动漫3d一区二区三区免费| 99视频精品免费观看| 在线视频精品一区| 国产美女精品免费电影| 老司机精品久久| 欧美日韩一视频区二区| 久久精品综合一区| 狼人天天伊人久久| 午夜精品视频| 欧美成年视频| 一区二区三区日韩精品视频| 欧美一级电影久久| 国产一区二区三区在线观看视频 | 国产视频一区二区在线观看| 玖玖在线精品| 久久精品视频免费观看| 亚洲美女黄网|