程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 我也要學C語言-第二章:第一個C程序的編譯初解

我也要學C語言-第二章:第一個C程序的編譯初解

編輯:關於C語言

上一次我學習了在VC6.0下成功的運行了第一個C程序,實在是感覺到興奮.但是關於編譯,鏈接等步驟,VC6.0已經傻瓜化的幫我做了,我感覺到確實很方便,但是這樣才給我帶來了1個問題,就是其中的步驟只是看了書有所了解,自己呢,沒有實踐過,所以感覺還不是自己的東西。所以我決定自己用記事本寫個程序,但是自己動手實現編譯,鏈接等VC幫我做了的事情。

  首先,我用記事本寫上那個helloworld程序。

#include<stdio.h>

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

return (0);
}

然後把此文件後綴命名為.c的hello.c文件。

  然後在CMD中,用CL hello.c 這時,CL編譯器就會生成2個文件。1個是hello.exe文件,1個是hello.obj文件。.exe文件我知道是WINDOWS平台的可執行文件,可是這個.obj是個什麼文件啊,我不懂,我查閱下了資料。原來.obj文件是通用的COFF的格式,是個目標文件,可以和其他平台交互.但是怎麼一下子出現了2個文件啊!原來直接用CL命令,編譯器給自動鏈接了。這裡要加1個參數/c。這樣編譯器就不會自動鏈接了。嗯!加了參數/c後果然只有1個.obj文件了!!!現在沒有了.exe要怎麼才能生成.exe文件呢,這裡就要用到另外1個命令工具了,link.這個工具就是鏈接器!然後我這樣做:link hello.obj。這樣做了link就為win平台造了個pe格式的hello.exe.嘿嘿!這下子就可以在WIN平台運行hello程序了!!!

  上一節中有個網友提醒我,#include<stdio.h>是將stdio.h這個文件在此處原樣展開。於是我深入學習了下證明了他的說法,是這樣的,非常感謝他!但是如何才能自己看到這一過程呢。就是在cl命令後面加上2個參數/c和/p。我試試!這樣呢,就會多了1個.i文件。然後我打開它,盡然有400多行,我仔細對照了stdio.h中的內容,是一樣的,但是其中有個細節,就是stdio.h文件中也包含了其他文件,所以全部展開後就400多行了!

  嗯!現在差不多明白了第一個程序是如何做的了!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved