c語言編譯成功後的文件
c語言編譯生成的.obj文件是一種文本文件,程序編譯時生成的中間代碼文件目標文件,一般是程序編譯後的二進制文件,再通過鏈接器和資源文件鏈接就成可執行文件了。OBJ只給出了程序的相對地址,而可執行文件是絕對地址。
obj文件基本結構:OBJ文件不需要任何種文件頭(File Header),盡管經常使用幾行文件信息的注釋作為文件的開頭。
OBJ文件由一行行文本組成,注釋行以符號「#」為開頭,空格和空行可以隨意加到文件中以增加文件的可讀性。有字的行都由一兩個標記字母也就是關鍵字(Keyword)開頭,關鍵字可以說明這一行是什麼樣的數據。
(1)c語言編譯成功後的文件擴展閱讀:
C編譯的整個過程很復雜,大致可以分為以下階段:
1、預處理階段
在該階段主要完成對源代碼的預處理工作,主要包括對宏定義指令,頭文件包含指令,預定義指令和特殊字元的處理,如對宏定義的替換以及文件頭中所包含的文件中預定義代碼的替換等,總之這步主要完成一些替換工作,輸出是同源文件含義相同但內容不同的文件。
2、編譯、優化階段
編譯就是將第一階段處理得到的文件通過詞法語法分析等轉換為匯編語言。優化包括對中間代碼的優化,如刪除公共表達式,循環優化等;和對目標代碼的生成進行的優化,如如何充分利用機器的寄存器存放有關變數的值,以減少內存訪問次數。
3、匯編階段
將匯編語言翻譯成機器指令。
⑵ c璇璦緙栬瘧鍚庣殑鏂囦歡鍚庣紑鏄浠涔堬紵
C璇璦婧愭枃浠跺悗緙鍚嶆槸.c錛岀紪璇戠敓鎴愮殑鏂囦歡鍚庣紑鍚嶆槸.obj錛岃繛鎺ュ悗鍙鎵ц屾枃浠剁殑鍚庣紑鍚嶆槸.exe銆
婧愭枃浠剁殑鍚庣紑浠呬粎鏄涓轟簡琛ㄦ槑璇ユ枃浠朵腑淇濆瓨鐨勬槸鏌愮嶈璦鐨勪唬鐮侊紙渚嬪.c鏂囦歡涓淇濆瓨鐨勬槸C璇璦浠g爜錛夛紝榪欐牱紼嬪簭鍛樻洿鍔犲規槗鍖哄垎錛岀紪璇戝櫒涔熸洿鍔犲規槗璇嗗埆錛屽畠騫朵笉浼氬艱嚧璇ユ枃浠剁殑鍐呴儴鏍煎紡鍙戠敓鏀瑰彉銆
鎵╁睍璧勬枡
C璇璦鏄涓縐嶇粨鏋勫寲璇璦錛屽畠鏈夌潃娓呮櫚鐨勫眰嬈★紝鍙鎸夌収妯″潡鐨勬柟寮忓圭▼搴忚繘琛岀紪鍐欙紝鍗佸垎鏈夊埄浜庣▼搴忕殑璋冭瘯錛屼笖c璇璦鐨勫勭悊鍜岃〃鐜拌兘鍔涢兘闈炲父鐨勫己澶с
渚濋潬闈炲父鍏ㄩ潰鐨勮繍綆楃﹀拰澶氭牱鐨勬暟鎹綾誨瀷錛屽彲浠ヨ交鏄撳畬鎴愬悇縐嶆暟鎹緇撴瀯鐨勬瀯寤猴紝閫氳繃鎸囬拡綾誨瀷鏇村彲瀵瑰唴瀛樼洿鎺ュ誨潃浠ュ強瀵圭‖浠惰繘琛岀洿鎺ユ搷浣滐紝鍥犳ゆ棦鑳藉熺敤浜庡紑鍙戠郴緇熺▼搴忥紝涔熷彲鐢ㄤ簬寮鍙戝簲鐢ㄨ蔣浠躲
C璇璦鏄鏅閫傛ф渶寮虹殑涓縐嶈$畻鏈虹▼搴忕紪杈戣璦錛屽畠涓嶄粎鍙浠ュ彂鎸ュ嚭楂樼駭緙栫▼璇璦鐨勫姛鐢錛岃繕鍏鋒湁奼囩紪璇璦鐨勪紭鐐廣
⑶ 請問:c語言編譯成功後生成後綴名為.o的文件,什麼東東,什麼作用。
是編譯成功後的文件。
以hello.c為例:
先將源文件編譯成目標文件:gcc - c hello.c。生成hello.o文件,再將目標文件編譯成可執行文件:gcc -o hello hello.o
這樣就生成了可執行文件,在./hello就可以運行hello了。
⑷ C語言程序編譯後產生哪些類型的文件這些文件的作用是什麼
不同的系統,產生的文件不一樣;
win:
->.obj目標文件
->.obj目標文件->.exe可執行文件
->.rc
。。。。
⑸ c語言編譯後如何生成exe文件
在C語言中,生成`.exe`文件(在Windows環境下)通常涉及使用編譯器將C語言源代碼(`.c`文件)轉換成可執行文件(`.exe`)。這個過程通常通過命令行工具或集成開發環境(IDE)來完成。
如果你使用的是GCC編譯器(如MinGW在Windows上),你可以通過打開命令行工具(如CMD或PowerShell),導航到你的源代碼文件所在的目錄,然後運行類似`gcc -o myprogram.exe myprogram.c`的命令來編譯你的程序。這里,`gcc`是編譯器的名稱,`-o myprogram.exe`指定了輸出文件的名稱(包括`.exe`擴展名),而`myprogram.c`是你的源代碼文件名。
如果你使用的是Visual Studio這樣的IDE,過程則更加圖形化。你需要在Visual Studio中創建一個新項目,選擇C++(注意,雖然Visual Studio主要面向C++,但它也完全支持C語言),然後添加你的`.c`文件。編寫並保存代碼後,你可以通過點擊「生成」菜單中的「生成解決方案」或使用快捷鍵(通常是F7)來編譯你的程序。編譯成功後,Visual Studio會在項目的輸出目錄中生成`.exe`文件。
無論是使用命令行工具還是IDE,生成`.exe`文件的核心步驟都是編譯源代碼。編譯過程將源代碼轉換成機器語言,這樣計算機就可以直接執行程序了。
⑹ C語言源程序文件經過編譯連接之後生成一個後綴為_____的文件。
如果只生成一個文件,那麼這個題目答案是B。編譯(compile)後生成目標文件,後綴:.obj。也就是機器碼。
然後鏈接器(Linker) 連接生成可執行文件,後綴:.exe。最後運行命令(go),直接運行.exe文件。
(6)c語言編譯成功後的文件擴展閱讀:
簡單講,編譯器就是將「一種語言(通常為高級語言)」翻譯為「另一種語言(通常為低級語言)」的程序。
一個現代編譯器的主要工作流程:源代碼(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)。