• <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>

            T9的空間

            You will never walk alone!

              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
              69 隨筆 :: 0 文章 :: 28 評論 :: 0 Trackbacks
            第二章
            編譯和鏈接
            這章比較籠統,都是概念,熟悉基本流程的人,建議不看。
             
            記錄一些基本流程
             
            拿GCC來說
            用GCC編譯鏈接生成可執行文件的過程分為下面4個步驟
            Prepressing,Compilation,Assembly,Linking
             
            Prepressing 預處理
            從.c -> .i (gcc -E)
            主要是處理,前綴為‘#’的語句
             
            define的直接替換
            對define這種,從我觀察應該是這樣
            對源文件類似.c直接掃描 看到define的符號直接加到表中
            然后在替換的時候會做遞歸檢查,直到符號是最終定義。
             
            所以這個與define的順序沒有太大關系了,只要不循環嵌套
             
            類似這種
            #define M (N + 1)
            #define N 2
             
            這種在用到M的時候,會先替換成 (N + 1)但是發現替換的表達式中還有未決symbol,那么
            就再進行替換 (2 + 1)
             
            表中并不會直接寫成 M (2 + 1),至少我看到的GCC行為是這樣。
             
            include的也是直接導入
             
            另外預編譯選項 #ifdef 之類的會處理掉,刪掉所有注釋
             
            #pragma是要被保留給編譯器的,這是編譯器選項,例如 pragma pack是用來指定字節對齊標準的
             
            Compilation 編譯
            從 .i -> .s (gcc -S)
            現在的GCC版本都把預編譯和編譯做到了一個可執行程序中 -> ccl
             
            編譯的主要過程
            掃描,語法分析,語義分析,源代碼優化,代碼生成,目標代碼優化
            Source code --Scanner--> Tokens --Parser--> Syntax Tree
            --Semantic Analyzer--> Commented Syntax Tree --Source code Optimizer--> Intermediate Representation
            --Code Generator--> Target Code --Code Optimizer-->Final Target Code
             
            Assembly 匯編
            從 .s -> .o (gcc -c) -->匯編器as
             
            Linking 鏈接
            ld做的事情
            link的時候由于每個源文件都是單獨編譯,那么必須處理一些外來的symbol
            包括函數和全局變量
            posted on 2013-10-21 17:01 Torres 閱讀(277) 評論(0)  編輯 收藏 引用 所屬分類: Compile & Link
            久久精品中文字幕有码| AV色综合久久天堂AV色综合在| 2021少妇久久久久久久久久| 久久国产精品成人免费| 久久久久无码中| 久久九九久精品国产免费直播| 久久精品国产亚洲AV麻豆网站| 国产成人香蕉久久久久| 久久精品国产99国产精品亚洲| 午夜精品久久久久久久久| 美女写真久久影院| 亚洲中文字幕无码久久综合网| 国产精品青草久久久久福利99| 久久久噜噜噜久久中文字幕色伊伊| 91精品国产综合久久久久久| 四虎影视久久久免费观看| 99国产精品久久| 久久亚洲AV无码精品色午夜麻豆| 国产精品久久自在自线观看| 狠狠综合久久综合88亚洲| 狠狠精品久久久无码中文字幕| 久久一日本道色综合久久| 久久精品免费全国观看国产| 久久AAAA片一区二区| 狠狠色丁香婷婷久久综合不卡| 亚洲精品蜜桃久久久久久| 欧美日韩久久中文字幕| 久久久久亚洲av成人无码电影| 欧美综合天天夜夜久久| 97精品伊人久久大香线蕉app| 久久无码专区国产精品发布| 亚洲日韩欧美一区久久久久我| 国产精品丝袜久久久久久不卡| 久久精品国产亚洲欧美| 久久亚洲欧美日本精品| 国产激情久久久久影院小草 | 久久久久久久综合日本亚洲| 亚洲精品乱码久久久久久| 伊人久久综合成人网| 久久天天躁狠狠躁夜夜96流白浆| 久久婷婷色综合一区二区|