導航:首頁 > 源碼編譯 > c程序經c編譯後生成obj文件

c程序經c編譯後生成obj文件

發布時間:2024-10-08 06:30:16

① c語言編譯生成的.obj文件解釋下

c語言編譯生成的.obj文件是一種文本文件,程序編譯時生成的中間代碼文件目標文件,一般是程序編譯後的二進制文件,再通過鏈接器和資源文件鏈接就成可執行文件了。OBJ只給出了程序的相對地址,而可執行文件是絕對地址。

obj文件基本結構:OBJ文件不需要任何種文件頭(File Header),盡管經常使用幾行文件信息的注釋作為文件的開頭。

OBJ文件由一行行文本組成,注釋行以符號「#」為開頭,空格和空行可以隨意加到文件中以增加文件的可讀性。有字的行都由一兩個標記字母也就是關鍵字(Keyword)開頭,關鍵字可以說明這一行是什麼樣的數據。

(1)c程序經c編譯後生成obj文件擴展閱讀:

C編譯的整個過程很復雜,大致可以分為以下階段:

1、預處理階段

在該階段主要完成對源代碼的預處理工作,主要包括對宏定義指令,頭文件包含指令,預定義指令和特殊字元的處理,如對宏定義的替換以及文件頭中所包含的文件中預定義代碼的替換等,總之這步主要完成一些替換工作,輸出是同源文件含義相同但內容不同的文件。

2、編譯、優化階段

編譯就是將第一階段處理得到的文件通過詞法語法分析等轉換為匯編語言。優化包括對中間代碼的優化,如刪除公共表達式,循環優化等;和對目標代碼的生成進行的優化,如如何充分利用機器的寄存器存放有關變數的值,以減少內存訪問次數。

3、匯編階段

將匯編語言翻譯成機器指令。

② C語言源程序文件經過編譯連接之後生成一個後綴為_____的文件。

如果只生成一個文件,那麼這個題目答案是B。編譯(compile)後生成目標文件,後綴:.obj。也就是機器碼。

然後鏈接器(Linker) 連接生成可執行文件,後綴:.exe。最後運行命令(go),直接運行.exe文件。

(2)c程序經c編譯後生成obj文件擴展閱讀:

簡單講,編譯器就是將「一種語言(通常為高級語言)」翻譯為「另一種語言(通常為低級語言)」的程序。

一個現代編譯器的主要工作流程:源代碼(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語言編譯成功後生成後綴名為.o的文件,什麼東東,什麼作用。

是編譯成功後的文件。
以hello.c為例:
先將源文件編譯成目標文件:gcc - c hello.c。生成hello.o文件,再將目標文件編譯成可執行文件:gcc -o hello hello.o
這樣就生成了可執行文件,在./hello就可以運行hello了。

④ c璇璦緇忚繃緙栬瘧鍚庣敓鎴愭枃浠剁殑鍚庣紑鏄

C璇璦緇忚繃緙栬瘧鍚庣敓鎴愭枃浠剁殑鍚庣紑鏄鈥.obj鈥濄

褰揅璇璦婧愪唬鐮佽緙栬瘧鍚庯紝閫氬父浼氱敓鎴愪竴涓鈥.o鈥濓紙object file錛夋枃浠躲傝繖涓鏂囦歡鍖呭惈浜嗙紪璇戝櫒鎵浜х敓鐨勬満鍣ㄤ唬鐮侊紝浣嗘槸瀹冭繕娌℃湁琚榪炴帴鍒板叾浠栨ā鍧楁垨搴撲腑銆傜浉搴斿湴錛屽湪涓嶅悓鐨勬搷浣滅郴緇熶笂鍙鑳戒細鏈変笉鍚岀殑鍚庣紑鍚嶅拰浜岃繘鍒舵牸寮忋備緥濡傦紝Windows涓婄殑Visual C++緙栬瘧鍣ㄤ嬌鐢ㄢ.obj鈥濅綔涓虹洰鏍囨枃浠剁殑鎵╁睍鍚嶃

闄や簡鐩鏍囨枃浠朵箣澶栵紝榪樻湁鍏朵粬綾誨瀷鐨勬枃浠朵篃鍙鑳藉湪緙栬瘧榪囩▼涓鍑虹幇銆備緥濡傦紝婧愭枃浠跺寘鍚浜嗕唬鐮佺殑鍘熷嬫枃鏈錛涘ご鏂囦歡鍖呭惈浜嗙▼搴忎腑浣跨敤鍒扮殑鍑芥暟鍜屽彉閲忕殑澹版槑銆傝繖浜涙枃浠舵墿灞曞悕閫氬父涓衡.c鈥濆拰鈥.h鈥濄

C璇璦鐨勪紭鐐圭畝榪

C璇璦鐨勮捐$洰鏍囨槸鎻愪緵涓縐嶈兘浠ョ畝鏄撶殑鏂瑰紡緙栬瘧銆佸勭悊浣庣駭瀛樺偍鍣ㄣ佷粎浜х敓灝戦噺鐨勬満鍣ㄧ爜浠ュ強涓嶉渶瑕佷換浣曡繍琛岀幆澧冩敮鎸佷究鑳借繍琛岀殑緙栫▼璇璦銆侰璇璦鎻忚堪闂棰樻瘮奼囩紪璇璦榪呴熴佸伐浣滈噺灝忋佸彲璇繪уソ銆佹槗浜庤皟璇曘佷慨鏀瑰拰縐繪嶏紝鑰屼唬鐮佽川閲忎笌奼囩紪璇璦鐩稿綋銆侰璇璦涓鑸鍙姣旀眹緙栬璦浠g爜鐢熸垚鐨勭洰鏍囩▼搴忔晥鐜囦綆10%鈥20%銆傚洜姝わ紝C璇璦鍙浠ョ紪鍐欑郴緇熻蔣浠躲

褰撳墠闃舵碉紝鍦ㄧ紪紼嬮嗗煙涓錛孋璇璦鐨勮繍鐢ㄩ潪甯鎬箣澶氾紝瀹冨吋欏句簡楂樼駭璇璦鍜屾眹緙栬璦鐨勪紭鐐癸紝鐩歌緝浜庡叾浠栫紪紼嬭璦鍏鋒湁杈冨ぇ浼樺娍銆傝$畻鏈虹郴緇熻捐′互鍙婂簲鐢ㄧ▼搴忕紪鍐欐槸C璇璦搴旂敤鐨勪袱澶ч嗗煙銆傚悓鏃訛紝C璇璦鐨勬櫘閫傝緝寮猴紝鍦ㄨ稿氳$畻鏈烘搷浣滅郴緇熶腑閮借兘澶熷緱鍒伴傜敤錛屼笖鏁堢巼鏄捐憲銆侰璇璦鎷ユ湁緇忚繃浜嗘極闀垮彂灞曞巻鍙茬殑瀹屾暣鐨勭悊璁轟綋緋伙紝鍦ㄧ紪紼嬭璦涓鍏鋒湁涓捐凍杞婚噸鐨勫湴浣嶃

⑤ c語言程序經過編譯後生成文件的後綴是

C語言程序經過編譯後生成的文件後綴通常是<strong>.obj</strong>或<strong>.o</strong>。


這些後綴是對象文件(object file)的後綴,它們是源代碼編譯後的中間文件,通常包含了一些機器代碼和符號表信息。


為了更好地理解這個問題,我們需要知道編譯是一個將源代碼轉換為機器代碼的過程。在編譯過程中,編譯器會將源代碼中的指令和數據提取出來,然後按照特定的格式重新組織成機器代碼。這個過程通常會生成一個或多個對象文件。


為了使答案通俗易懂,我們可以這樣解釋:當你在電腦上編寫C語言程序時,你需要一個編譯器來將你的源代碼轉換為可以在你的電腦或網路上運行的程序。編譯器會將你的源代碼轉化為一種特殊的機器語言,這種語言可以直接被計算機硬體理解並執行。這個特殊的機器語言文件通常被稱為對象文件,因為它們包含了編譯後的代碼和一些其他的信息,如符號表等。


所以,當你編譯一個C語言程序時,你通常會得到一個或多個以<strong>.obj</strong>或<strong>.o</strong>為後綴的文件。這些文件包含了編譯後的代碼和其他信息,它們可以被鏈接器用來創建最終的可執行文件。

⑥ C語言源程序文件的後綴是什麼,經過編譯後生成文件的後綴是什麼經過連接後生成文件的後綴是什麼

C語言源文件後綴名是.c,編譯生成的文件後綴名是.obj,連接後可執行文件的後綴名是.exe。

源文件的後綴僅僅是為了表明該文件中保存的是某種語言的代碼(例如.c文件中保存的是C語言代碼),這樣程序員更加容易區分,編譯器也更加容易識別,它並不會導致該文件的內部格式發生改變。



(6)c程序經c編譯後生成obj文件擴展閱讀

C語言是一種結構化語言,它有著清晰的層次,可按照模塊的方式對程序進行編寫,十分有利於程序的調試,且c語言的處理和表現能力都非常的強大。

依靠非常全面的運算符和多樣的數據類型,可以輕易完成各種數據結構的構建,通過指針類型更可對內存直接定址以及對硬體進行直接操作,因此既能夠用於開發系統程序,也可用於開發應用軟體。

C語言是普適性最強的一種計算機程序編輯語言,它不僅可以發揮出高級編程語言的功用,還具有匯編語言的優點。

⑦ C語言源程序文件名的後綴是.OBJ,經過編譯後,生成文件的後綴是什麼經過連接後,生成文件的後綴是什麼

C語言源程序文件名的後綴是.c。C源程序經過C編譯程序編譯之後生成一個後綴為.OBJ的二進制文件,

然後由稱為「連接程序」的軟體,把此.OBJ文件與C語言提供的各種庫函數連接起來生成一個後綴為.EXE的可執行文件。

由高級語言編寫的程序稱為「源程序」,把由二進制代碼表示的程序稱為「目標程序」。為了把源程序轉換成機器能接受的目標程序,這時我們需要具有翻譯功能的軟體--「編譯程序」。每種高級語言都有與它對應的編譯程序。

(7)c程序經c編譯後生成obj文件擴展閱讀

1、目標文件的擴展名為「.obj」(Windows)或「.o」(Linux)。目標文件已經是機器指令,但還不能運行,因為目標文件還沒有解決函數調用問題。

2、可執行文件的擴展名為「.exe「。

⑧ c語言源程序文件經過c編譯程序編譯連接之後生成一個後綴為什麼

您想問的是c語言源程序文件經過c編譯程序編譯連接之後生成的一個後綴是什麼嗎?「.exe」
C語言源文件後綴名是「.c」,編譯生成的文件後綴名是「.obj」,連接後可執行文件的後綴名是「.exe」。
c語言是一門面向過程、抽象化的通用程序設計語言,廣泛應用於底層開發。C語言具有高效、靈活、功能豐富、表達力強和較高的可移植性等特點,在程序設計中備受青睞。

閱讀全文

與c程序經c編譯後生成obj文件相關的資料

熱點內容
阿里巴巴app靜態編譯 瀏覽:723
命令世界怎麼獲得迷你幣 瀏覽:649
應用加密重新安裝 瀏覽:83
抖音抖幣充值源碼 瀏覽:734
我的世界如何去更新伺服器 瀏覽:73
單片機視頻模塊 瀏覽:996
程序員的圖中的亮點在哪裡 瀏覽:657
蘋果手機伺服器地址是什麼意思 瀏覽:461
雲伺服器裡面怎麼升級d盤 瀏覽:546
java文件存入資料庫 瀏覽:89
雷特字幕出現未發現加密鎖 瀏覽:768
java線程監視 瀏覽:947
無聊的程序員日常 瀏覽:803
雲伺服器ecs項目 瀏覽:23
健康證伺服器地址是什麼意思 瀏覽:196
惠普筆記本提取壓縮軟體 瀏覽:773
市政管網水準點加密 瀏覽:951
安卓底部三鍵怎麼關閉 瀏覽:649
php高效分頁 瀏覽:15
輕閱讀的伺服器的地址是什麼 瀏覽:957