首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C 語言入門筆記(二):手動編譯鏈接,揭開 VC6.0 傻瓜操作的面紗

     編輯:關於C語言

為什麼要手動編譯?

上回在 VC6.0 成功跑通 Hello World,但編譯、鏈接全由 IDE 自動完成,雖方便卻不清楚內部步驟,知識不屬於自己。決定用記事本寫程式,親手實現編譯、鏈接全過程。

實戰步驟

1. 源碼準備

#include <stdio.h>

int main(void)
{
    printf("Hello,World! ");
    return (0);
}

存為 hello.c。

2. 直接用 CL 編譯

CMD 執行 CL hello.c,生成兩個文件:hello.exe(Windows 可執行檔)與 hello.obj(目標檔,COFF 格式,跨平台交互用)。為何一次出兩個?因 CL 默認自動鏈接。

3. 僅編譯不鏈接:/c 參數

加上 /c 後,只生成 .obj。此時無 .exe,如何生成?需鏈接器 link:

link hello.obj

為 Win 平台產生 PE 格式 hello.exe,可直接執行!

4. 驗證 #include 展開過程

網友提醒 #include <stdio.h> 會原樣展開文件內容。用 CL /c /P hello.c 生成 .i 文件,打開竟有 400 多行!對照 stdio.h 發現:stdio.h 內部又包含其他頭文件,全展開後自然龐大。

小結

現在大致明白第一個程式如何從源碼變成可執行檔了。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved