編譯自己的源程序為可執行文件
① 如何在linux環境下編輯一個c語言源程序並將其編譯為可執行文件
打開安裝好的Linux系統(ubuntu18.04)
1.安裝編輯器
使用語句:sudo apt-get install vim安裝vim,可以在安裝前查看是否安裝vim編輯器。(特別提示:在安裝vim前最好將軟體更新,使用指令sudo apt-get update.)之所以要加sudo的原因是這些安裝和更新軟體的時候需要使用管理員許可權才可以進行。
2.安裝gcc編譯器
和安裝vim類似使用sudo apt-get install gcc,安裝完成後可以使用cc-v來查看編譯器版本信息等。cc -v界面如下:
② 如何將編寫好的C語言源程序變成可執行文件EXE
以GCC編譯器為例,可以分為四步。x0dx0a第一步是預處理,包括語法檢查等工作。x0dx0agcc -P abc.cx0dx0a第二步由源程序生產匯編語言代碼。x0dx0agcc -S abc.c x0dx0a會生成abc.s文件,這個文件里就是匯編代碼。x0dx0a第三步編譯器生成目標代碼,一個源文件生成一個目標代碼。x0dx0agcc -c abc.cx0dx0a會生成abc.ox0dx0a第四步連接器從目標代碼生成可執行文件。x0dx0agcc abc.ox0dx0ax0dx0a目標代碼包括機器碼和符號表(函數及變數名)。連接器的主要作用是通過符號表在庫文件和其他模塊中找到在目標代碼中引入或未定義的符號(函數及變數名),將幾個目標代碼合成可執行文件。
③ 如何將編寫好的C語言源程序變成可執行文件EXE
從網上轉來的
編譯
F5
使用Turbo
C來調試C程序的示例:
1、首先打開turboc,方法很簡單啦:找到turboc所在目錄,然後雙擊TC.exe。
2、然後會出現一個窗口,使用Alt+F組合鍵打開菜單選擇New選項回車新建文件
3、然後輸入c語言源程序(這里特別注意要細心,千萬不要輸錯了)
4、好當很長很長的源程序輸入完以後(雖然很多同學剛剛接觸c語言,還不知道自己輸了半天輸的是什麼)接一下檢查一下自己輸入的程序是否語法正確,然後使用Alt+R組合鍵打開菜單選擇Run選項回車,也就是運行選項(主要是看看輸了半天的程序在計算機當中運行是個什麼東東)
5、好像沒有什麼表示嗎,不要著急不是計算機出了問題,這個時候用Alt+R組合鍵選擇User
Scren選項回車
6、怎麼樣是不是有結果了.
7、好一個程序調試完畢我們需要保存一下我們辛苦勞動的結果,用Alt+F組合鍵選擇Save選項回車保存我們的程序(注意保存的目錄和文件名,文件名要以擴展名.c結尾)
④ 簡述將源程序編譯成可執行程序的過程
一個源程序到一個可執行程序的過程:預編譯、編譯、匯編、鏈接。其中,編譯是主要部分,其中又分為六個部分:詞法分析、語法分析、語義分析、中間代碼生成、目標代碼生成和優化。
預編譯:主要處理源代碼文件中的以「#」開頭的預編譯指令。處理規則如下:
1、刪除所有的#define,展開所有的宏定義。
2、處理所有的條件預編譯指令,如「#if」、「#endif」、「#ifdef」、「#elif」和「#else」。
3、處理「#include」預編譯指令,將文件內容替換到它的位置,這個過程是遞歸進行的,文件中包含其他文件。
4、刪除所有的注釋,「//」和「/**/」。
5、保留所有的#pragma 編譯器指令,編譯器需要用到他們,如:#pragma once 是為了防止有文件被重復引用。
6、添加行號和文件標識,便於編譯時編譯器產生調試用的行號信息,和編譯時產生編譯錯誤或警告是能夠顯示行號。
(4)編譯自己的源程序為可執行文件擴展閱讀:
編譯過程中語法分析器只是完成了對表達式語法層面的分析,語義分析器則對表達式是否有意義進行判斷,其分析的語義是靜態語義——在編譯期能分期的語義,相對應的動態語義是在運行期才能確定的語義。
其中,靜態語義通常包括:聲明和類型的匹配,類型的轉換,那麼語義分析就會對這些方面進行檢查,例如將一個int型賦值給int*型時,語義分析程序會發現這個類型不匹配,編譯器就會報錯。
⑤ 用編譯程序可將c語言源程序變為什麼程序
你好,C語言通過編譯之後,會變為計算機能夠執行的程序。
源程序(源代碼)是指按照一定的程序設計語言規范編寫的未經過編譯的文本文件,是具有可讀性的計算機語言指令。可以比作自己手寫的程序代碼。可執行程序(Executable Program,EXE file)是可以在操作系統存儲空間中浮動定位的二進制可執行程序。一般軟體安裝後會生成可執行文件,可以直接載入到內存中,操作系統載入並執行。
以 C 語言為例,自己編寫的源代碼文件擴展名為 c,這個 c 文件就是源文件。從源文件到可執行文件一般需要經過幾個步驟:預處理->編譯->匯編->鏈接這四個過程。
希望我的回答能夠幫助到你。