⑴ C語言文件的編譯與執行的四個階段並分別描述
開發C程序有四個步驟:編輯、編譯、連接和運行。
任何一個體系結構處理器上都可以使用C語言程序,只要該體系結構處理器有相應的C語言編譯器和庫,那麼C源代碼就可以編譯並連接到目標二進制文件上運行。
1、預處理:導入源程序並保存(C文件)。
2、編譯:將源程序轉換為目標文件(Obj文件)。
3、鏈接:將目標文件生成為可執行文件(EXE文件)。
4、運行:執行,獲取運行結果的EXE文件。
(1)cc編譯和cpp編譯擴展閱讀:
將C語言代碼分為程序的幾個階段:
1、首先,源代碼文件測試。以及相關的頭文件,比如stdio。H、由預處理器CPP預處理為.I文件。預編譯的。文件不包含任何宏定義,因為所有宏都已展開,並且包含的文件已插入。我歸檔。
2、編譯過程是對預處理文件進行詞法分析、語法分析、語義分析和優化,生成相應的匯編代碼文件。這個過程往往是整個程序的核心部分,也是最復雜的部分之一。
3、匯編程序不直接輸出可執行文件,而是輸出目標文件。匯編程序可以調用LD來生成可以運行的可執行程序。也就是說,您需要鏈接大量的文件才能獲得「a.out」,即最終的可執行文件。
4、在鏈接過程中,需要重新調整其他目標文件中定義的函數調用指令,而其他目標文件中定義的變數也存在同樣的問題。
⑵ .CC是什麼文件用什麼編譯的
.cc是Linux/Unix下為C++源文件的默認擴展名,與.cpp一個意思
用GCC/G++在 Linux/Unix下可以打開和編譯
⑶ c++源文件 不同後綴(.cc .cpp .C .cp)的區別
VC里用cpp作後綴名, 在GCC里默認採用C、cc、cxx作為後綴名
.cpp, .h (VS file)
.cc, .h (GCC file)
C中:
頭文件後綴名: .h
源文件後綴名: .c
C++中:
頭文件後綴名: .h, .hpp, .hxx
源文件後綴名:.cpp, .cc, .cxx, .C .c++
這是現在不同標准下給出的擴展名:
Unix: C, cc, cxx, c
GNU C++: C, cc, cxx, cpp, c++
Digital Mars: cpp, cxx
Borland: C++ cpp
Watcom: cpp
Microsoft Visual C++: cpp, cxx, cc
Metrowerks CodeWarrior: cpp, cp, cc, cxx, c++
這些東西其實就是個標注,給人看的,叫什麼無所謂,只要能看出和c有關但也有別就行
我大膽YY一下:
c++就是直接用語言的名字命名的擴展名,cpp也類似(C Plus Plus)
但有些系統可能不支持在文件名里放入加號"+"
所以有用x代替+(你不覺得x很像斜倒下來的加號么……),於是有了cxx
而C和cc則是代表這是c的「加大」或「加強」版
當然,C這個擴展名在Win系統下用顯然不合適,因為Win是大小寫不敏感系統
對Win來說"test.c"和"TEST.C"是完全相同的文件名
但在Linux/Unix平台上就不同了
GCC 中以 .s為後綴的文件,是匯編語言源代碼文件
-----------------------------------------------------
GCC文件後綴名:
.c為後綴的文件,C語言源代碼文件;
.a為後綴的文件,是由目標文件構成的檔案庫文件;
.C,.cc或.cxx 為後綴的文件,是C++源代碼文件;
.h為後綴的文件,是程序所包含的頭文件;
.i 為後綴的文件,是已經預處理過的C源代碼文件;
.ii為後綴的文件,是已經預處理過的C++源代碼文件;
.m為後綴的文件,是Objective-C源代碼文件;
.o為後綴的文件,是編譯後的目標文件;
.s為後綴的文件,是匯編語言源代碼文件;
.S為後綴的文件,是經過預編譯的匯編語言源代碼文件。
⑷ .CC是什麼文件用什麼編譯的
1. 在Linux/Unix系統中,.cc文件是C++源代碼文件的常見擴展名,與.cpp文件本質上是等同的,用於編寫和組織C++程序代碼。
2. 這些文件需要使用特定的編譯器進行處理,而在Linux/Unix環境下,常用的編譯工具是GCC的C++版本G++。
3. GCC是一個開源的編譯器,支持多種編程語言,包括C++。使用G++編譯器可以對.cc文件進行編譯,將其轉換為可執行文件或動態鏈接庫。
4. 在Linux/Unix環境下,通過命令行輸入"g++ filename.cc -o output"進行編譯,其中filename.cc是源文件名,output是輸出文件名。
5. 因此,.cc文件的編譯主要依賴於G++在Linux/Unix平台上的支持。