❶ c語言源程序文件經過連接後生成文件的擴展名是什麼
選擇C.」.exe「
解析如下:
文件編輯的時候源碼是CPP擴展名,C++頭文件是.H擴展名。編譯源程序文件轉換成.obj擴展名的目標文件。鏈接將一個或多個目標文件與程序用到的庫文件鏈拉起來,形成一個可以在操作系統直接運行的執行程序.exe。
也就是整個過程分為:預編譯,對源代碼的宏進行替換,生成中間文件(文本,默認不保留)》》翻譯為匯編代碼(文本,默認不保留)》》由匯編器生成二進制文件(.obj)》》連接為可執行文件(.exe)。
(1)c語言編譯器把目標代碼連接起來擴展閱讀
一、編譯
目標代碼生成是編譯的最後一個階段。目標代碼生成器把語法分析後或優化後的中間代碼變換成目標代碼。目標代碼有三種形式:
①可以立即執行的機器語言代碼,所有地址都重定位;
②待裝配的機器語言模塊,當需要執行時,由連接裝入程序把它們和某些運行程序連接起來,轉換成能執行的機器語言代碼;
③匯編語言代碼,須經過匯編程序匯編後,成為可執行的機器語言代碼。
目標代碼生成階段應考慮直接影響到目標代碼速度的三個問題:一是如茄亮何生成較短的目標代碼;二是如何充分利用計算機中的寄存器圓納唯,減少目標代碼訪問存儲單元的次數;三是如何充分利用計算機指令系統的特點,以提高目標代碼的質量。
二、高級程序設計語言C
程序的編譯
編譯是指將編輯好的源文件翻譯成二進制目標代碼的過程。編譯過程是由編譯程序(編譯器)完成的。不同操作系統下的各種編譯器的使用命令不完全相同,使用時應注意計算機環境。編譯時,編譯器首先要對源程序中的每一個語句檢查語法錯誤,當發現錯誤時,就在屏幕上顯示錯誤的位置和錯誤類型橘培的信息。
此時,要再次調用編輯器進行查錯修改。然後,再進行編譯,直至排除所有語法和語義錯誤。正確的源程序文件經過編譯後在磁碟上生成目標文件(後綴名為.obj的文件)。程序的連接
編譯後產生的目標文件是可重定位的程序模塊,不能直接運行。連接就是把目標文件和其他必需的目標程序模塊(這些目標程序模塊是分別編譯而生成的目標文件)以及系統提供的標准庫函數連接在一起,生成可以運行的可執行文件的過程。連接過程使用C語言提供的連接程序(連接器)完成,生成的可執行文件(後綴名為.exe的文件)存到磁碟中。
程序的運行
程序經過連接生成可執行文件後,就可以在操作系統控制下運行.若執行程序後達到預期目的,則C程序的開發工作到此完成.否則,要進一步檢查修改源程序,重復編輯-編譯-連接-運行的過程,直到取得預期結果為止。
❷ 開發一個c語言程序要經過哪四個步驟
開發一個C語言程序需要經過的四個步驟:編輯、編譯、連接、運行。
C語言程序可以使用在任意架構的處理器上,只要那種架構的處理器具有對應的培羨纖C語言編譯器和庫,然後將C源代碼編配仿譯、連接成目標二進制文件之後即可運行。
1、預處理:輸入源程序並保存(.C文件)。
2、編譯:將源程序翻譯為目標文件(.OBJ文件)。
3、鏈接:將目標文件生成可執行文件(.EXE文件)。
4、運行:執行.EXE文件,得到運行結果。
(2)c語言編譯器把目標代碼連接起來擴展閱讀:
C語言代碼變為程序的幾個階段:
1、首先是源代碼文件test.c和相關的頭文件,如stdio.h等被預處理器cpp預處理成一個.i文件。經過預編譯後的.i文件不包含任何宏定義,因為所有的宏已經被展開,並且包含的文件也已經被插入到.i文件中。
2、編譯過程就是把預處理完的文件進行一系列的詞法分析、語法分析、語義分析以及優化後產生相應的匯編代碼文件,這個過程往往是我們所說的整個程序的構建的核心部分,也是最復雜的部分之一。派胡
3、匯編器不直接輸出可執行文件而是輸出一個目標文件,匯編器可以調用ld產生一個能夠運行的可執行程序。即需要將一大堆文件鏈接起來才可以得到「a.out」,即最終的可執行文件。
4、在鏈接過程中,對其他定義在目標文件中的函數調用的指令需要被重新調整,對實用其他定義在其他目標文件的變數來說,也存在同樣問題。
參考資料來源:網路-c語言
❸ 寫了一個程序可以編譯c語言,怎麼自動再鏈接然後執行生成的可執行文件
編譯的大致過程如下:
你完成的其實是前面一部分,的第一階段,生成了中間代碼。
目標代碼,即目標文件包含著機器代碼(可直接被計算機中央處理器執行)以及代碼在運行時使用的數據,如重定位信息,如用於洞穗鏈接或調試的程序符號(變數和函數的名字),此外還包括其他調試信簡搏息。
後面是由鏈接程序將編譯後形成的一組目標模塊以及它們所需要的庫函數鏈接在一起,形成一個完整的載攔顫祥入模塊。
目前的編譯工具通常編譯器和鏈接器都是分開,例如GNU的編譯器是gcc,鏈接器是ld
❹ c語言中的編輯,編譯,連接,運行分別是什麼意思
1、編輯:編寫代碼,製作C語言的源文件。
2、編譯:是由編譯程序將C語言源文件轉換成二進制中間文件,對文件內部的語法語義做處理,如果編譯出錯,無法進行後續動作。
3、鏈接:將編譯中生成的中間文件組合成二進制可執知行文件,這一步會對文件之間的關聯做檢查,如果出錯,將不會生成可執行文件,也就無法執行。
4、執行:運行可執行文件,這一步道是編寫代碼的最終目的。
(4)c語言編譯器把目標代碼連接起來擴展閱讀:
DOS命令通常分為三類:內部命令、外部命令和批處理命令。
1、內部命令:
其包含在命令解釋程序COMMAND.COM中,一旦啟動DOS,這些命令就被調入內存,只要在DOS系統提示符下輸入這些命令,就可立即執行。
2、外部命令:
其以文件的形式存儲在系統盤上,所帶擴展名為COM和EXE。DOS啟動時,它們並沒有被調入內存,執行前必須從系統盤讀進內存。因此輸入外部命令時,要了解該命令是否在當前盤上,不然DOS無法找到它們。
3、批處理命令:
實際上是個文件,該文件包含多條命令,當用戶鍵入批處理文件名時,DOS將順序執行其中的各條命令。注意,批處理命令必須用「.BAT」作為擴展名。
C語言的運算非常靈活,功能十分豐富,運算種類遠多於其它程序設計語言。在表達式方面較其它程序語言更為簡潔,如自加、自減、逗號運算和三目運算使表達式更為簡單。
當多種不同運算組成一個運算表達式,即一個運算式中出現多種運算符時,運算的優先順序和結合規則就會顯得十分重要。
網路-運行命令
網路-C語言
❺ C語言如何將兩個源程序文件連接在一起編譯
請使用預編譯指令 #include。
#include放在代碼文件頭,用於告訴編譯器,文件中包含的頭文件,屬於預處理文件的一部分 。
語法為:
#include <iostream.h> (這句是程序編譯時搜索系統目錄文件)
#include 「HName.h" (這句是程序編譯時搜索當前項目的文件)
❻ 被包含文件是在編譯時先單獨生成目標文件,然後連接到可執行文件中去. 對嗎
不知道你是說那種語言,如果是C/C++的話,一般我們使用#include指令包含頭文件(當然,頭文件也是可以有實現),編譯器首先通過預編譯,將所有使用#include的地方全部使用包含的文件替換,然後在執行編譯,所以被包含不會生成單獨的目標文件
生成單獨的目標文件一般是頭文件的實現文件,頭文件的實現就是先編譯成單獨的目標文件,然後通過鏈接器連接到一起,成為一個完整的可執行文件
❼ C語言文件的編譯與執行的四個階段並分別描述
開發C程序有四個步驟:編輯、編譯、連接和運行。
任何一個體系結構處理器上都可以使用C語言程序,只要該體系結構處理器有相應的C語言編譯器和庫,那麼C源代碼就可以編譯並連接到目標二進制文件上運行。
1、預處理:導入源程序並保存(C文件)。
2、編譯:將源程序轉換為目標文件(Obj文件)。
3、鏈接:將目標文件生成為可執行文件(EXE文件)。
4、運行:執行,獲取運行結果的EXE文件。
(7)c語言編譯器把目標代碼連接起來擴展閱讀:
將C語言代碼分為程序的幾個階段:
1、首先,源代碼文件測試。以及相關的頭文件,比如stdio。H、由預處理器CPP預處理為.I文件。預編譯的。文件不包含任何宏定義,因為所有宏都已展開,並且包含的文件已插入。我歸檔。
2、編譯過程是對預處理文件進行詞法分析、語法分析、語義分析和優化,生成相應的匯編代碼文件。這個過程往往是整個程序的核心部分,也是最復雜的部分之一。
3、匯編程序不直接輸出可執行文件,而是輸出目標文件。匯編程序可以調用LD來生成可以運行的可執行程序。也就是說,您需要鏈接大量的文件才能獲得「a.out」,即最終的可執行文件。
4、在鏈接過程中,需要重新調整其他目標文件中定義的函數調用指令,而其他目標文件中定義的變數也存在同樣的問題。
❽ C++語言如何將文本編輯器中的代碼編譯,如何連接代碼,弄成可執行文件。本人電腦方面是白痴,
http://blog.csdn.net/u010966622/article/details/9126833
編譯/連接/運行
C編程語言操作系統
學習C語言以及VC運行環境,首先要搞清楚的是編譯、連接、運行到底在執行什麼操作:
首棚消陸先,讓我們用VC6先來編制一個最簡單的程序,並讓它運行(執行)而得出結果,以此來作為了解VC6的開端。這個程序的功能僅僅是向屏幕上輸出一個字元串「Hello World」。程序雖小,但與編制運行大程序的整個過程是相同的,都包含著如下所謂鏈頃的「四步曲」:
1,編輯(把程序代碼輸入,交給計算機)。
2,編譯(成目標程序文件.obj)。
編譯就是把高級語言變成計算機可以識別的2進制語言,計算機只認識1和0,編譯程序把人們熟悉的語言換成2進制的。編譯程序把一個源程序翻譯成目標程序的工作過程分為五個階段:詞法分析;語法分析;語義檢查和中間代碼生成;代碼優化;目標代碼生成。主要是進行詞法分析和語法分析,又稱為源程序分析,分析過程中發現有語法錯誤,給出提示信息。
3,鏈接(成可執行程序文件.exe)。
鏈接是將編譯產生的.obj文件和系統庫連接裝配成一個可以執行的程序。由於在實際操作中可以直接點擊Build從源程序產生可執行程序,可能有人就會置疑:為何要將源程序翻譯成可執行文件的過程分為編譯和鏈接兩個獨立的步驟,不是多此一舉嗎?之所以這樣做,主要是因為:在一個較大的復雜項目中,有很多人共同完成一個項目(每個人可能承擔其中一部分模塊),其中有的模塊可能是用匯編語言寫的,有的模塊可能是用VC寫的,有的模塊可能是用VB寫的,有的模塊可能是購買(不是源程序模塊而是目標代碼)或已有的標准庫模塊,因此,各類源程序都需要先各自編譯成目標程序文件(2進行機器指令代碼),再通過鏈接程序將這些目標程序文件連接裝配成可執行文件。
4,運行(可橋中執行程序文件)。
上述四個步驟中,其中第一步的編輯工作是最繁雜而又必須細致地由人工在計算機上來完成,其餘幾個步驟則相對簡單,基本上由計算機來自動完成。