編譯cc
編譯共分為四個階段:預處理階段、編譯階段、匯編階段、鏈接階段。
1、預處理階段:
主要工作是將頭文件插入到所寫的代碼中,生成擴展名為「.i」的文件替換原來的擴展名為「.c」的文件,但是原來的文件仍然保留,只是執行過程中的實際文件發生了改變。(這里所說的替換並不是指原來的文件被刪除)
2、匯編階段:
插入匯編語言程序,將代碼翻譯成匯編語言。編譯器首先要檢查代碼的規范性、是否有語法錯誤等,以確定代碼的實際要做的工作,在檢查無誤後,編譯器把代碼翻譯成匯編語言,同時將擴展名為「.i」的文件翻譯成擴展名為「.s」的文件。
3、編譯階段:
將匯編語言翻譯成機器語言指令,並將指令打包封存成可重定位目標程序的格式,將擴展名為「.s」的文件翻譯成擴展名為「.o」的二進制文件。
4、鏈接階段:
在示例代碼中,改代碼文件調用了標准庫中printf函數。而printf函數的實際存儲位置是一個單獨編譯的目標文件(編譯的結果也是擴展名為「.o」的文件),所以此時主函數調用的時候,需要將該文件(即printf函數所在的編譯文件)與hello world文件整合到一起,此時鏈接器就可以大顯神通了,將兩個文件合並後生成一個可執行目標文件。
2. ubuntu中如何編譯a.cc文件
.cc是linux/Unix下為C++源文件的默認擴展名,與.cpp一個意思
用GCC/G++在 Linux/Unix下可以打開和編譯
可以使用命令:g++ a.cc
當然,ubuntu不自帶c++編譯器,可以先使用下面命令安裝:
sudo apt-get install build-essential
希望可以幫到你。
3. liux編譯中輸入cc是什麼意思
cc是Unix的c語言編譯器,是 c compiler 的縮寫。
gcc是Linux的,是GNU compiler collection 的縮寫
在Linux下,可以認為它們是一樣的,在Linux下調用cc時,其實際上並不指向unix的cc編譯器,而是指向了gcc,也就是,可以說cc是gcc的一個快捷方式
4. 為什麼 gcc能編譯它 cc編譯出錯
從名字上看,老的unix系統的CC程序叫做C Compiler。但GCC這個名字按GNU的說法叫做Gnu Compiler Collection。因為gcc包含很多編譯器(C, C++, Objective-C, Ada, Fortran,and Java)。所以它們是不一樣的,一個是一個古老的C編譯器,一個是編譯器的Gnu的編譯器的集合(Gcc里的C編譯器比CC強大太多了,所以你沒必要用CC)。當你調用gcc時不一定是調用的C/C++編譯器,是gcc根據文件擴展名自動識別並調用對應的編譯器,具體可查閱$man gcc。
5. VC++、C、CC之間有什麼區別
vc++是微軟開發的C++開發工具,主要用於window平台的軟體開發,但是合理的配置也可以編譯linux或者android下的軟體(需要對應的sdk或者gcc編譯器)。針對window應用的開發,其提供了mfc庫,可以提高window應用程序開發的速度和質量。一般應用於網路通信、UI開發、應用軟體、服務軟體等大中型軟體項目開發
C不是C++,雖然一開始是一種面向過程編程的語言,但新的linux內核使用了該語言編程,但是卻是遵循的面向對象的概念。可以進行埠、定址和內存操作,一般應用於內核、驅動、靜態庫、動態庫等小型項目或者系統項目的開發。
CC一般多存在於makefile文件,是一種編譯時的環境變數,往往指向一個C/C++的編譯器,並沒有專門的實體和其對應。
6. .CC是什麼文件用什麼編譯的
.cc是Linux/Unix下為C++源文件的默認擴展名,與.cpp一個意思
用GCC/G++在 Linux/Unix下可以打開和編譯
7. cc動態編譯
設一下export LD_LIBRARY_PATH=
8. 怎樣利用CC命令在Unix上編譯C程序
在 UNIX系統下面,使用 cc 命令最常用的選項主要有如下幾個(以 my_prog.c 為例進行說明)
$cc -c my_prog.c <cr> (-c 選項表示只編譯、產生中間文件,不進行鏈接、並產生最終的可執行程序)
$cc my_prog.c <cr>(編譯、鏈接,並產生預設的可執行程序。預設的可執行文件名為:a.out)
$cc -o my_runfile my_prog.c <cr>(-o 選項用於生成用戶指定的可執行程序名,代替預設的可執行文件名:a.out。這里的可執行文件名是:my_runfile)
至於說還有很多其他選項,例如:-L系統庫名字(*.LIB)等,那就需要在平時的編程過程中去體會了。
另外,如果是在 Linux 系統下面進行 C 語言的開發,使用的是 gcc 編譯器。其選項和 cc 編譯器相同。
9. CC和gcc是一樣的編譯器嗎
cc是Unix系統的C Compiler,而gcc則是GNU Compiler Collection,GNU編譯器套裝。gcc原名為Gun C語言編譯器,因為它原本只能處理C語言,但gcc很快地擴展,包含很多編譯器(C、C++、Objective-C、Ada、Fortran、Java)。因此,它們是不一樣的,一個是古老的C編譯器,一個是GNU編譯器集合,gcc裡面的C編譯器比cc強大多了,因此沒必要用cc。
下載不到cc的原因在於:cc來自於昂貴的Unix系統,cc是商業軟體。
Linux下的cc是gcc符號連接,可以通過$ls –l /usr/bin/cc來簡單察看,該變數是make程序的內建變數,默認指向gcc。cc符號鏈接和變數存在的意義在於源碼的移植性,可以方便的用gcc來編譯老的用cc編譯的Unix軟體,甚至連makefile都不用改在,而且也便於Linux程序在Unix下編譯。
10. Linux下C編譯器cc的參數詳解
Linux 下面 cc 就是 gcc ……
你可以去 gcc.gnu.org 看看 gcc 的文檔,參數多的頭暈。
http://gcc.gnu.org/onlinedocs/gcc-4.3.0/gcc/Invoking-GCC.html#Invoking-GCC