標籤:是什麼 驗證 如何 其他 協助 沒有 概念 編譯環境 記事本
C語言綜合研究1
搭建一個tcc環境
研究過程:
問題引出:為什麼要使用tcc環境,甚至連圖形介面都沒有,為什麼要使用這樣的化境?
按照我們學習的本質來講,可能是為了體驗C語言底層的相關特性,但是在研究1中尚不能體會這點,所以這個問題待後續回答
我們將相關檔案放到DOS環境下的C盤中去,用記事本書寫一個簡單的c程式。
使用c:\c\tcc a.c命令打算對.c檔案進行編譯。
發現,提示錯誤:不能找到a.c檔案。
那麼應該是無法識別路徑,或者是相關的問題?那麼推測是,難道tcc 環境在工作的時候需要一個索引路徑的檔案支援?
隨即我們使用了諸如 minic\tc c\a.c.發現可以找到a,c檔案並開啟它,於是得出結論,路徑問題並不由tcc來決定,而是由作業系統DOS決定。雖然考慮到這一點,但是仍不知道怎麼做,於是百度
最終知道應該 用 cd c\命令使目錄更改為C:\C>
這樣順利的編譯串連產生a.exe檔案。
但是仍不知道這樣做的原因是是什麼 為什麼tc的時候就沒有這個問題。
之後處於好奇心,將tlink.exe刪除,發現只能能夠產生.obj檔案,但是不能產生.exe檔案,如果不刪除tlink.exe發現可以直接產生.exe檔案,這說明了tcc.exe程式有調用tlink.exe程式的作用,而其本身能夠實現編譯功能。
又做了如下嘗試,算是對之前研究的回憶,在tlink.exe刪除後,刪除了其他必要檔案,發現仍讓能夠產生.obj檔案,說明這些檔案在編譯階段不是必須的,而這個再次說明了什麼是:串連!
做完這些工作,運行產生的.exe檔案,顯示了“hello world!”。
已解決:
1.通過這個研究做到了最基本的事情,搭建一個tcc環境並對.c檔案進行編譯串連產生.exe檔案。
2.認識到了tcc負責產生.obj檔案,tlink負責產生.exe檔案,但tcc會調用tlink 檔案。
3.對之前的研究進行回顧,進一步認識了“編譯”,“串連”這個概念
未解決:
1.tcc甚至連圖形介面都沒有,我們為什麼使用tcc?
2.教材所說的有兩個最大64K的段,試問如何驗證?以及,這個是什麼意思?
感悟:
通過建立tcc環境,實現了對.c檔案的編譯串連,總體來說tcc比tc少了很多檔案,這對於我們研究c語言是極其有協助的,可以讓我們抓住一些更為核心的東西,而忽略那些目前階段不需要瞭解的東西。
研究C語言的新型編譯環境TCC