1. c++編譯後產生的一些文件是什麼
c++程序在編譯後,在目標路徑下會生成多個文件:
Debug文件夾(*.exe,*.ilk,*.obj,*.pch,*.pdb,*.idb,*,pdb),*.cpp,*.dsp,*.ncb,*.plg。
1、exe:是生成的可執行文件。
2、ilk:當選定漸增型編譯連接時,連接器自動生成ILK文件,記錄連接信息。
3、obj:是目標文件,源程序編譯後的產物。
4、pch:全稱是PreCompiled Header,就是預先編譯好的頭文件。
5、idb:文件保存的信息,使編譯器在重新編譯的時候只重編譯最新改動過的函數和只對最新類定義改動過的源文件進行重編譯,以提高編譯速度。
6、pdb:全稱是Program DataBase,即程序資料庫文件,用來記錄調試信息。
(1)每個文件編譯之後擴展閱讀:
工作原理:
C++語言的程序因為要體現高性能,所以都是編譯型的。但其開發環境,為了方便測試,將調試環境做成解釋型的。即開發過程中,以解釋型的逐條語句執行方式來進行調試,以編譯型的脫離開發環境而啟動運行的方式來生成程序最終的執行代碼。
生成程序是指將源碼(C++語句)轉換成一個可以運行的應用程序的過程。如果程序的編寫是正確的,那麼通常只需按一個功能鍵,即可搞定這個過程。該過程實際上分成兩個步驟。
第一步是對程序進行編譯,這需要用到編譯器(compiler)。編譯器將C++語句轉換成機器碼(也稱為目標碼);如果這個步驟成功,下一步就是對程序進行鏈接,這需要用到鏈接器(linker)。鏈接器將編譯獲得機器碼與C++庫中的代碼進行合並。
2. java源名字後綴名,編譯後生成什麼
.java 是java源文件
.class文件是java源文件編譯後的文件
.jar文件是按照模塊或功能把多個.class文件放到一起,
.dex文件是android系統中的一個文件標准,是在把java文件編譯成CLASS文件後,通過一個工具(dx)將應用所有的 CLASS文件轉換成一個DEX文件,而後Dalvik虛擬機會從其中讀取指令和數據。
3. C語言源程序文件的後綴是什麼,經過編譯後生成文件的後綴是什麼經過連接後生成文件的後綴是什麼
C語言源文件後綴名是.c,編譯生成的文件後綴名是.obj,連接後可執行文件的後綴名是.exe。
源文件的後綴僅僅是為了表明該文件中保存的是某種語言的代碼(例如.c文件中保存的是C語言代碼),這樣程序員更加容易區分,編譯器也更加容易識別,它並不會導致該文件的內部格式發生改變。
(3)每個文件編譯之後擴展閱讀
C語言是一種結構化語言,它有著清晰的層次,可按照模塊的方式對程序進行編寫,十分有利於程序的調試,且c語言的處理和表現能力都非常的強大。
依靠非常全面的運算符和多樣的數據類型,可以輕易完成各種數據結構的構建,通過指針類型更可對內存直接定址以及對硬體進行直接操作,因此既能夠用於開發系統程序,也可用於開發應用軟體。
C語言是普適性最強的一種計算機程序編輯語言,它不僅可以發揮出高級編程語言的功用,還具有匯編語言的優點。
4. 編譯之後為什麼要連接
這是一個編程基礎的問題。
目前編程語言主要有兩種類型,一種是編譯型語言,一種是解釋型語言。二者的區別在於:編譯型語言需要編譯、鏈接生成可執行文件之後才能運行,解釋型語言直接就可以運行。C語言是一種編譯型語言。
對於計算機來說,只能運行二進制的機器指令。為了方便編寫指令給計算機,通過簡單的替換之後有了匯編語言。但是匯編語言相對來說還是相當復雜,編寫軟體時工作量巨大。所以就有了如C語言,C++,JAVA之類的高級語言。
這些語言其實是對匯編做了抽象封裝。編譯這個動作就是將C語言翻譯成了匯編。C語言經過編譯這個動作後每個.C文件都會生成一個OBJ,鏈接這個動作是將多個OBJ鏈接到同一個可執行文件中,最後生成的是EXE文件。
5. c語言編譯後出現的文件後綴都是什麼意思
.ilk 當選定漸增型編譯連接時,連接器自動生成ILK文件,記錄連接信息
.obj project中每個cpp經編譯成為obj(object)文件,所有obj文件經鏈接(link)成為可執行文件。所以obj可稱為目標文件或中間文件 .pch 預編譯頭文件(一般擴展名為.PCH),是把一個工程中較穩定的代碼預先編譯好放在一個文件(.PCH)里.這些預先編譯好的代碼可以是任何的C/C++代碼--甚至可以是inline函數,只它們在整個工程中是較為穩定的,即在工程開發過程中不會經常被修改的代碼.
.pdb 全稱是 program debug database
它在工程編譯時自動生成, 程序運行時是不需要它的
但是,要debug代碼時,需要載入它,否則不能調試 .exe 是最終編譯生成的可執行文件 如果你程序編譯完畢,可以正常使用,可以只保留.exe文件,因為其它文件都是編譯過程中間生成或用到的,執行時並不需要。
6. C語言源程序文件的後綴是什麼,經過編譯後生成文件的後綴是什麼經過連接後生成文件的後綴是什麼
程序文件名的後綴是.c,經過編譯後是.obj,經過連接後是.exe。
xx.h文件.h中一般放的是同名.c文件中定義的變數、數組、函數的聲明,需要讓.c外部使用的聲明。
xx.c文件.c文件一般放的是變數、數組、函數的具體定義。
1、頭文件的預編譯,預處理。
編譯器在編譯源代碼時,會先編譯頭文件,保證每個頭文件只被編譯一次。
在預處理階段,編譯器將c文件中引用的頭文件中的內容全部寫到c文件中。
2、詞法和語法分析(查錯)。
3、編譯(匯編代碼,.obj文件)。
轉化為匯編碼,這種文件稱為目標文件。後綴為.obj。
4、鏈接(二進制機器碼,.exe文件)。
將匯編代碼轉換為機器碼,生成可執行文件。
(6)每個文件編譯之後擴展閱讀
注意事項
在編譯過程中.h文件中的所有內容會被寫到包含它的.c文件中,而所有的.c文件以一個共同的main函數作為可執行程序的入口。
在.h文件中編寫函數實現依然可以正常編譯執行,相當於所有.h的內容最後都被寫到了main.c文件中。
但是為了邏輯性、易於維護性以及一些其他目的,一般在.h文件中寫函數的聲明,在.c文件中編寫函數的實現。
7. 一個java源文件編譯後是否只生成一個class文件
否。
一個JAVA源文件裡面可以有內部類,其他類(有且僅有一個類可以聲明為public),所以,編譯後,可以有多個class文件
8. 成功編譯.java文件後會生成幾個.class文件
每一個類對應一個class文件
編譯一個java文件會生成多個class文件
說明在此java文件中調用了多個類
9. 編譯之後生成的文件是什麼
這個,每個語言對編譯的定義不盡相同,有可能是目標程序,有可能是中間代碼。
如:c,c++等通常生成的是目標程序,如python,java,C#等通常生成的是中間代碼。
10. 為什麼c語言編譯之後生成的是.exe
Windows下的編譯套件:
cl.exe:編譯程序
link.exe:鏈接程序
lib.exe:lib庫載入程序
nmake.exe:構建工具
.exe是Windows上能運行程序格式。
不同平台後綴不同
比如在Linux平台使用gcc編譯後生成.out文件
沒必要糾結後綴。