① makefile 中的cc -c是啥意思啊
只編譯產生 .o 文件,而不鏈接。cc 是 編譯器的 名字。
② C語言源程序文件經過編譯連接之後生成一個後綴為_____的文件。
如果只生成一個文件,那麼這個題目答案是B。編譯(compile)後生成目標文件,後綴:.obj。也就是機器碼。
然後鏈接器(Linker) 連接生成可執行文件,後綴:.exe。最後運行命令(go),直接運行.exe文件。
(2)由cc源編譯而成的目標文件擴展閱讀:
簡單講,編譯器就是將「一種語言(通常為高級語言)」翻譯為「另一種語言(通常為低級語言)」的程序。
一個現代編譯器的主要工作流程:源代碼(source code) →預處理器(preprocessor) →編譯器(compiler) →目標代碼(object code) →鏈接器(Linker) → 可執行程序(executables)
高級計算機語言便於人編寫,閱讀交流,維護。機器語言是計算機能直接解讀、運行的。
編譯器將匯編或高級計算機語言源程序(Source program)作為輸入,翻譯成目標語言(Target language)機器代碼的等價程序。
源代碼一般為高級語言 (High-level language), 如Pascal、C、C++、Java、漢語編程等或匯編語言。
而目標則是機器語言的目標代碼(Object code),有時也稱作機器代碼(Machine code)。
對於C#、VB等高級語言而言,此時編譯器完成的功能是把源碼(SourceCode)編譯成通用中間語言(MSIL/CIL)的位元組碼(ByteCode)。
最後運行的時候通過通用語言運行庫的轉換,編程最終可以被CPU直接計算的機器碼(NativeCode)。
③ 選擇題:由C++源程序文件編譯而成的目標文件的默認擴展名為( )。A)cpp B)exe C)obj D)lik
由C++源程序文件編譯而成的目標文件的默認擴展名為:obj。
在VC6.0集成開發環境下,用戶可以使用編譯(compile)命令將一個.cpp為擴展名的C++源程序文件轉換成一個以.obj為擴展名的目標文件。
編譯,編譯程序讀取源程序(字元流),對之進行詞法和語法的分析,將高級語言指令轉換為功能等效的匯編代碼,再由匯編程序轉換為機器語言,並且按照操作系統對可執行文件格式的要求鏈接生成可執行程序。
(3)由cc源編譯而成的目標文件擴展閱讀
源代碼-->預處理-->編譯-->優化-->匯編-->鏈接-->可執行文件
編譯過程就是把預處理完的文件進行一系列的詞法分析,語法分析,語義分析及優化後生成相應的匯編代碼。
現在版本的GCC把預處理和編譯兩個步驟合成一個步驟,用cc1工具來完成。gcc其實是後台程序的一些包裝,根據不同參數去調用其他的實際處理程序,比如:預編譯編譯程序cc1、匯編器as、連接器。
編譯器在編譯時是以c/c++文件為單位進行的, 如果項目中沒有c/c++文件,那麼你的項目將無法編譯。
經過預編譯得到的輸出文件中,將只有常量。如數字、字元串、變數的定義,以及C語言的關鍵字,如main,if,else,for,while,{,},+,-,*,,等等。編譯程序所要作得工作就是通過詞法分析和語法分析,在確認所有的指令都符合語法規則之後,將其翻譯成等價的中間代碼表示或匯編代碼。
④ 源程序TEST.C經編譯產生的目標文件和連接後產生的可執行文件是什麼
編譯就是把C代碼轉換成CPU可執行的機器指令,每個.c文件生成一個.obj文件。
鏈接就是把生成的(多個)
.obj
文件及用到的庫文件(.lib)一起組合生成可執行文件(.exe)。
⑤ C語言源程序文件、目標文件和可執行文件的擴展名是什麼
C語言源程序文件擴展名:.c
目標文件擴展名:.obj
可執行文件擴展名:檔正.exe
源程序:程序可以用高級語言或匯編語言編寫,用高級語言或匯編語言編寫的程序稱為源程序。C語言源程序的擴展名為「.c」。源程序不能直接在計算機上執行,需要用「編譯程序」將源程序編譯為二進制形式的代行慎悔碼。
目標程序:源程序經過「編譯程序」編譯所得到的二進制代碼稱為目標程序。目標程序
的擴展名為「.obj」。
目標代碼盡管已經是機器指令,但是還不能運行,因為目標程序還沒有解決函數調用問題,需要將各個目標程序與庫函數連接,才能形成完孝冊整的可執行程序。
可執行程序:目標程序與庫函數連接,形成的完整的可在操作系統下獨立執行的程序
稱為可執行程序。可執行程序的擴展名為「.exe「。
(5)由cc源編譯而成的目標文件擴展閱讀:
C語言創建程序的步驟:
編輯:就是創建和修改C程序的源代碼-我們編寫的程序稱為源代碼。
編譯:就是將源代碼轉換為機器語言。編譯器的輸出結果成為目標代碼,存放它們的文件稱為目標文件。擴展名為.o或者.obj。(該部分編譯是指匯編器編譯匯編語言或者編譯器編譯高級語言)
鏈接:鏈接器將源代碼由編譯器產生的各種模塊組合起來,再從C語言提供的程序庫中添加必要的代碼模塊,將它們組成一個可執行的文件。在windows下擴展名為.exe,Unix下無擴展名。
執行:運行程序。
IT專家網——C語言編程程序編譯全過程剖析
⑥ C語言執行過程生成的三種文件和擴展名
用C語言編寫的程序成為C語言源程序,源程序文件的擴展名為「.c」。
源程序經編譯生成目標文件(".obj")。
把目標文件與各種庫函數連接起來,生成可執行文件(「.exe」).
C語言程序可以使用在任意架構的處理器上,只要那種架構的處理器具有對應的C語言編譯器和庫,然後將C源代碼編譯、連接成目標二進制文件之後即可運行。
(6)由cc源編譯而成的目標文件擴展閱讀:
C語言是面向過程的編程語言,用戶只需要關注所被解決問題的本身,而不需要花費過多的精力去了解相關硬體,且針對不同的硬體環境,在用C語言實現相同功能時的代碼基本一致,不需或僅需進行少量改動便可完成移植。
這就意味著,對於一台計算機編寫的C程序可以在另一台計算機上輕松地運行,從而極大的減少了程序移植的工作強度。
C語言既有高級語言的特點,又具有匯編語言的特點;既是一個成功的系統設計語言,又是一個實用的程序設計語言;既能用來編寫不依賴計算機硬體的應用程序,又能用來編寫各種系統程序;是一種受歡迎、應用廣泛的程序設計語言。
⑦ C語言中的源程序文件和目標文件的擴展名分別是
C語言源代碼文件一般擴展名為.c,目標文件擴展名一般為.obj,生成的可執行文件擴展名一般為.exe。
不同平台的C源代碼擴展名都為.c,但目標文件擴展名不同,例如:在Linux平台上,生成的可執行文件一般擴展為.out。
源文件:這是指由源程序和數據構成的文件。通常由終端或輸入設備輸入的源程序和數據所形成的文件都屬於源文件。它通常是由 ASCII 碼或漢字所組成的。
目標文件:這是指把源程序經過相應語言的編譯程序編譯過,但尚未經過鏈接程序鏈接的目標代碼所構成的文件。它屬於二進制文件。
可執行文件:這是指把編譯後所產生的目標代碼再經過鏈接程序鏈接後所形成的文件。
(7)由cc源編譯而成的目標文件擴展閱讀:
源文件,目標文件,可執行文件的聯系:
源文件就是用匯編語言或高級語言寫出來的代碼保存為文件,目標文件是指源文件經過編譯程序產生的能被cpu直接識別二進制文件。將目標文件鏈接起來就成了可執行文件。
源代碼與源文件:
源代碼(也稱源程序)是指未編譯的按照一定的程序設計語言規范書寫的文本文件,是一系列人類可讀的計算機語言指令。 在現代程序語言中,源代碼可以是以書籍或者磁帶的形式出現,但最為常用的格式是文本文件,這種典型格式的目的是為了編譯出計算機程序。
計算機源代碼的最終目的是將人類可讀的文本翻譯成為計算機可以執行的二進制指令,這種過程叫做編譯,通過編譯器完成。在大多數情況下,源代碼等於源文件。
參考資料來源:網路-源文件
⑧ 如何把多個c源文件生成目標文件
1、如果,在一個c主程序中,以include形式包含了其他所有的引用文件,在編譯過程中,編譯器首先會將這些文件合並到一個臨時文件中,然後再對這個臨時文件進行編譯。
2、如果,是作為一個工程,編譯器會分別編譯各個獨立的文件(如果文件中有include按照上一步進行),然後再將編譯好的初步結果用鏈接程序連到一起。
簡單的說,每一個.c或者.cc都是一個編譯單元,每一個編譯單元編輯的結果是一個.o或者obj之類的中間文件,至於是否是多文件,不需要關心,但是要保證不同的編譯單元之間不要有重復的符號,這就是要避免重復包含。
每一個編譯單元生成的目標文件.o或者obj都會引用一些不在本目標文件中的符號,這些符號定義在別的.o或者.obj文件中, 鏈接器把他們聯系在一起,所有的符號也就都有定義了,編譯鏈接簡單說來就是這樣。
⑨ 1、由C/C++源程序文件編譯而成的目標文件的預設擴展名為( )。 (1分) A、 cp
1.C2.C3.B4.C5.D6.A7.A8.A9.C10.D
⑩ 選擇題:由C++源程序文件編譯而成的目標文件的默認擴展名為( )。A)cpp B)exe C)obj D)lik
C obj
目標文件(objectfile)的擴展名是obj