Linux GCC工作流程

2021-10-10 03:24:38 字數 857 閱讀 6683

c語言程式的編譯以linux下編譯過程為例(即gcc命令)依次執行4個步驟:

1.預處理(preprocessing)

2.編譯(compilation)

3.彙編(assemble)

4.鏈結(linking)

第一步: 進行預處理

gcc -e 1hello.c -o 1hello.i

第二步: 生成彙編檔案

gcc -s 1hello.i -o 1hello.s

第三步: 生成目標**

gcc -c 1hello.s -o 1hello.o

第四步: 生成可以執行檔案

gcc 1hello.o -o 1hello

gcc常用選項 :

-wall 顯示警告

-g 利用gdb顯示除錯資訊

作用:(1)處理帶#號的預處理指令,標頭檔案展開,完成巨集定義替換(刪除了#define),處理所有的條件編譯指令(#if 0 #endif等),但保留#pragma編譯器指令。

(2)刪除所有注釋,新增行號和檔案標示。

(3)不能檢查語法錯誤(這一條很重要)

(4)生成預處理檔案

作用:編譯的過程實質是把高階語言翻譯成機器語言的過程

(1)詞法分析,語法分析,語義分析。

(2)優化後生成相應的彙編**

(3)檢查語法錯誤

目的:高階語言->組合語言

1.#pragma 編譯器指令是什麼?有什麼作用?

2.條件編譯指令如何實現?

3.巨集替換的規則?

Struts工作流程

文章分類 招聘求職 乙個使用者的請求是通actionservlet來處理和 的。那麼,actionservlet如何決定把使用者請求 給哪個action物件呢?這就需要一些描述使用者請求路徑和action衍射關係的配置資訊了。在struts中,這些配置對映資訊都儲存在特定的xml檔案struts c...

zf工作流程

zend controller是使用mvc模式來構建乙個站點的基礎。zend controller體系是乙個輕量的,模組化和可擴充套件的體系。它只提供最核心的必要的部分,允許開發者有很大的自由來靈活地構建自己的站點。使用zend controller的站點,其檔案組織和 結構會比較相似。zend c...

spring MVC 工作流程

1 首先來配置一下dispatcherservlet spring mvc和大部分mvc框架一樣,底層也是依賴servlet api的,所以spring mvc的請求處理也是從乙個servlet開始,這個servlet就是dispatcherservlet.以下是在web.xml中dispatche...