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

來源:互聯網
上載者:User

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

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

#include<stdio.h>

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

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多行了!

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.