【C】編譯和鏈接


一份源代碼要生成一份可以運行的程序,需要經過的步驟就是編譯和鏈接。

C語言的源代碼一般以.c和.h結尾,其中的C語言代碼屬於比較高級的語言,人類可以很輕易的看懂,但是計算機並不能理解,也不能直接運行。計算機只能識別二進制的數據,C代碼這種類似於人類自然語言的高級語言,它是不能識別的。
所以C語言需要先進行編譯,這份工作是通過編譯器來完成的。C語言的編譯器有很多,比較常用的是GCC(Linux下的C編譯器,當然也有人將其移植到了Windows系統中),MSVC(微軟提供的編譯器,和VS一起使用)

編譯器編譯C源碼文件,生成目標文件(.obj),這時候的目標文件還不能運行,需要再經過一步鏈接,鏈接是將多個目標文件和系統提供的一些組件鏈接到一起,形成一個可以載入到操作系統中運行的可執行文件。

這里,編譯階段中還可以分為三個小階段:
預處理階段:
1、處理以#開頭的預編譯指令,如,#define.
2、處理條件預編譯指令,如#if,#elif, #else, #endif
3、處理#include
4、刪除注釋。
.....

編譯階段:
詞法分析、語法分析、語義分析等。

匯編階段:
把代碼編譯為匯編文件,一般會有代碼段和數據段的生成。


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



C語言編譯與鏈接 C程序的編譯與鏈接 C++編譯與鏈接(1) C語言編譯、鏈接 C程序的編譯和鏈接 C語言編譯鏈接 c++編譯與鏈接 C++編譯與鏈接(2) C++編譯與鏈接(0) c++編譯鏈接不對
 
粤ICP备14056181号  © 2014-2021 ITdaan.com