• <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>
            posts - 297,  comments - 15,  trackbacks - 0

            gcc/g++ 在執行編譯時,需要4步

              1.預處理,生成.i的文件[使用-E參數]

              2.將預處理后的文件不轉換成匯編語言,生成文件.s[使用-S參數]

              3.有匯編變為目標代碼(機器代碼)生成.o的文件[使用-c參數]

              4.連接目標代碼,生成可執行程序[使用-o參數]

            -x language filename

              設定文件所使用的語言,使后綴名無效,對以后的多個有效.也就是根據約定C語言的后綴名稱是.c的,而C++的后綴名是.C或者.cpp,如果你很個性,決定你的C代碼文件的后綴名是.pig 哈哈,那你就要用這個參數,這個參數對他后面的文件名都起作用,除非到了下一個參數的使用。

            -ansi

              關閉gnu c中與ansi c不兼容的特性,激活ansi c的專有特性(包括禁止一些asm inline typeof關鍵字,以及UNIX,vax等預處理宏,

            -fno-asm

              此選項實現ansi選項的功能的一部分,它禁止將asm,inline和typeof用作關鍵字。

            -fno-strict-prototype

              只對g++起作用,使用這個選項,g++將對不帶參數的函數,都認為是沒有顯式的對參數的個數和類型說明,而不是沒有參數.而gcc無論是否使用這個參數,都將對沒有帶參數的函數,認為城沒有顯式說明的類型

            -fthis-is-varialble

              就是向傳統c++看齊,可以使用this當一般變量使用.

            -fcond-mismatch

              允許條件表達式的第二和第三參數類型不匹配,表達式的值將為void類型

              -funsigned-char

              -fno-signed-char

              -fsigned-char

              -fno-unsigned-char

              這四個參數是對char類型進行設置,決定將char類型設置成unsigned char(前兩個參數)或者 signed char(后兩個參數)

            -include file

              包含某個代碼,簡單來說,就是便以某個文件,需要另一個文件的時候,就可以用它設定,功能就相當于在代碼中使#include<filename>

              例子用法:

              gcc hello.c -include /root/pianopan.h

              -imacros file

              將file文件的宏,擴展到gcc/g++的輸入文件,宏定義本身并不出現在輸入文件中

              -Dmacro

              相當于C語言中的#define macro

              -Dmacro=defn

              相當于C語言中的#define macro=defn

              -Umacro

              相當于C語言中的#undef macro

              -undef

              取消對任何非標準宏的定義

              -Idir

              在你是用#include"file"的時候,gcc/g++會先在當前目錄查找你所制定的頭文件,如果沒有找到,他回到缺省的頭文件目錄找,如果使用-I制定了目錄,他回先在你所制定的目錄查找,然后再按常規的順序去找.對于#include<file>,gcc/g++會到-I制定的目錄查找,查找不到,然后將到系統的缺省的頭文件目錄查找

              -I-

              就是取消前一個參數的功能,所以一般在-Idir之后使用

              -idirafter dir

              在-I的目錄里面查找失敗,講到這個目錄里面查找.

              -iprefix prefix

              -iwithprefix dir

              一般一起使用,當-I的目錄查找失敗,會到prefix+dir下查找

              -nostdinc

              使編譯器不再系統缺省的頭文件目錄里面找頭文件,一般和-I聯合使用,明確限定頭文件的位置

              -nostdin C++

              規定不在g++指定的標準路經中搜索,但仍在其他路徑中搜索,.此選項在創建libg++庫使用

              -C

              在預處理的時候,不刪除注釋信息,一般和-E使用,有時候分析程序,用這個很方便的

              -M

              生成文件關聯的信息。包含目標文件所依賴的所有源代碼

              你可以用gcc -M hello.c來測試一下,很簡單。

              -MM

              和上面的那個一樣,但是它將忽略由#include<file>造成的依賴關系。

              -MD

              和-M相同,但是輸出將導入到.d的文件里面

              -MMD

              和-MM相同,但是輸出將導入到.d的文件里面

              -Wa,option

              此選項傳遞option給匯編程序;如果option中間有逗號,就將option分成多個選項,然后傳遞給會匯編程序

              -Wl.option

              此選項傳遞option給連接程序;如果option中間有逗號,就將option分成多個選項,然后傳遞給會連接程序.

              -llibrary

              制定編譯的時候使用的庫

              例子用法

              gcc -lcurses hello.c

              使用ncurses庫編譯程序

              -Ldir

              制定編譯的時候,搜索庫的路徑。比如你自己的庫,可以用它制定目錄,不然編譯器將只在標準庫的目錄找。這個dir就是目錄的名稱。

              -O0

              -O1

              -O2

              -O3

              編譯器的優化選項的4個級別,-O0表示沒有優化,-O1為缺省值,-O3優化級別最高

              -g

              只是編譯器,在編譯的時候,產生條是信息。

              -gstabs

              此選項以stabs格式聲稱調試信息,但是不包括gdb調試信息.

              -gstabs+

              此選項以stabs格式聲稱調試信息,并且包含僅供gdb使用的額外調試信息.

              -ggdb

              此選項將盡可能的生成gdb的可以使用的調試信息.

              -static

              此選項將禁止使用動態庫,所以,編譯出來的東西,一般都很大,也不需要什么動態連接庫,就可以運行.

              -share

              此選項將盡量使用動態庫,所以生成文件比較小,但是需要系統由動態庫.

              -traditional

              試圖讓編譯器支持傳統的C語言特性

            from:
            http://c.chinaitlab.com/ccjq/803616_2.html
            posted on 2010-03-19 09:23 chatler 閱讀(2396) 評論(0)  編輯 收藏 引用 所屬分類: makefile
            <2010年3月>
            28123456
            78910111213
            14151617181920
            21222324252627
            28293031123
            45678910

            常用鏈接

            留言簿(10)

            隨筆分類(307)

            隨筆檔案(297)

            algorithm

            Books_Free_Online

            C++

            database

            Linux

            Linux shell

            linux socket

            misce

            • cloudward
            • 感覺這個博客還是不錯,雖然做的東西和我不大相關,覺得看看還是有好處的

            network

            OSS

            • Google Android
            • Android is a software stack for mobile devices that includes an operating system, middleware and key applications. This early look at the Android SDK provides the tools and APIs necessary to begin developing applications on the Android platform using the Java programming language.
            • os161 file list

            overall

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            久久人妻少妇嫩草AV无码蜜桃| 久久香蕉综合色一综合色88| av无码久久久久不卡免费网站| 欧美粉嫩小泬久久久久久久 | 国产一久久香蕉国产线看观看| 久久亚洲精品成人无码网站| 久久久久久亚洲精品无码| 99久久综合狠狠综合久久止| 久久香蕉国产线看观看精品yw| 久久久SS麻豆欧美国产日韩| 亚洲精品视频久久久| 亚洲国产成人久久一区久久| 欧美日韩精品久久久免费观看| 久久国产精品一区| 久久综合狠狠综合久久97色| 久久久久久国产精品免费免费| 久久中文精品无码中文字幕| 久久久久亚洲AV成人网| 欧美无乱码久久久免费午夜一区二区三区中文字幕 | 久久久久久久久久久精品尤物| 中文国产成人精品久久亚洲精品AⅤ无码精品 | 久久久久亚洲av综合波多野结衣| 国产aⅴ激情无码久久| 久久亚洲精品国产精品| 久久精品国产只有精品2020| 国产毛片久久久久久国产毛片 | 奇米影视7777久久精品| 国产精品久久久久久吹潮| 国产亚洲美女精品久久久久狼| 色噜噜狠狠先锋影音久久| 99久久国产亚洲高清观看2024| 国产免费久久久久久无码| 国产精品久久久久免费a∨| 国产精品美女久久久久久2018| 精品久久久久久久久久久久久久久| 久久久久人妻一区精品| 久久天天躁狠狠躁夜夜96流白浆| 国产综合成人久久大片91| 久久综合88熟人妻| 亚洲国产精品成人AV无码久久综合影院| 亚洲人成精品久久久久|