本文目錄一覽:
C語言如何編譯
可以這樣做:1、新建C/C++源文件(在文件這裡選擇新建)2、命名C/C++源文件名,並為它指定保存路徑(選擇文件中的C/C++source File)(並在右邊輸入文件名,選擇保存位置,點擊確定)3、開始錄入程序(在空白的工作窗口錄入程序)4、編譯(點擊第一個紅框,所有的提示均按確定),運行(紅色感嘆號)
C語言編寫好代碼後,怎麼編譯,最後生成可執行文件?
材料/工具:vc6.0
1、打開c語言編輯工具,在工具中寫入程序的源代碼。
2、完成以後,點擊編譯後點擊組建,然後點擊執行。
3、執行完程序,點擊回車按鈕選項。
4、點擊文件另存為把文件存到你能夠找到的文件夾中。
5、打開保存在桌面的文件夾,裡面有有一個 Bebug 的文件夾。
6、打開 Bebug 的文件夾,有一個以.exe為後綴名的文件,就是所需要的可執行文件,將其拷貝出,就可以單獨執行,也就是一個小軟件生成了
怎樣用c語言編譯
C編譯的整個過程很複雜,大致可以分為以下四個階段:
預處理階段在該階段主要完成對源代碼的預處理工作,主要包括對宏定義指令,頭文件包含指令,預定義指令和特殊字符的處理,如對宏定義的替換以及文件頭中所包含的文件中預定義代碼的替換等,總之這步主要完成一些替換工作,輸出是同源文件含義相同但內容不同的文件。
編譯、優化階段編譯就是將第一階段處理得到的文件通過詞法語法分析等轉換為彙編語言。優化包括對中間代碼的優化,如刪除公共表達式,循環優化等;和對目標代碼的生成進行的優化,如如何充分利用機器的寄存器存放有關變量的值,以減少內存訪問次數。
彙編階段將彙編語言翻譯成機器指令。
鏈接階段鏈接階段的主要工作是將有關的目標文件連接起來,即將在一個文件中引用的符號同該符號在另外一個文件中的定義連接起來,使得所有的目標文件成為一個能夠被操作系統裝入執行的統一整體。
用gcc編譯器C語言程序的技巧
方法/步驟
1、編寫c代碼,並輸入以下代碼,生成文件hello.c
[root@wahoo
test]#
vim
hello.c
#include
stdio.h
#define
DISPLAY
“hello
c!”
int
main(void)
{
printf(“%s\n”,
DISPLAY
);
return
0;
}
ZZ(說明:ZZ當前文件進行快速保存操作)
2、預編譯(Preprocessing)
會對各種預處理指令(#include
#define
#ifdef
等#開始的代碼行)進行處理,刪除注釋和多餘的空白字符,生成一份新的代碼
[root@wahoo
test]#gcc
-E
hello.c
-o
hello.i
E
參數
通知gcc對目標文件進行預編譯,這裡是對文件hello.c文件
o
參數
是對命令輸出結果進行導入操作,這裡是把
gcc
-E
hello.c
操作結果輸出到文件hello.i(命名要自定義)中進行保存
這個命令執行完後我們目錄下多了一個文件hello.i,你可以查閱一下文件的內容。
3、編譯(Compilation)
對代碼進行語法、語義分析和錯誤判斷,生成彙編代碼文件
[root@wahoo
test]#gcc
-S
hello.i
-o
hello.s
S
參數
通知gcc對目標文件進行編譯,這裡是對文件hello.i文件
通過這一步我們知道
C語言跟彙編的
關係,至於他們之前是如何進行轉換的,大家可以進行更深入的學習與探討。
此時目錄下多了一個hello.s文件,內容如圖
4、彙編(Assembly)
把彙編代碼轉換與計算機可認識的二進制文件,要知道計算機只認識0和1呢
[root@wahoo
test]#gcc
-c
hello.s
-o
hello.o
c
參數
通知gcc對目標文件執行指令轉換操作
此步驟我們得到文件hello.o
大家也同樣打開文件查看一下,這個文件裡面幾乎沒幾個字符大家能看懂,這就對了,但大家可以通過這種方法將其轉化為我們可讀的形式:
[root@wahoo
test]#readelf
-a
hello.o
5、鏈接(Linking/Build)
通俗的講就是把多個*.o文件合併成一個可執行文件,二進制指令文件
[root@wahoo
test]#gcc
hello.o
-o
hello
這裡我們就得到了一個可以直接在系統下執行的文件
hello
我們也可以對這個文件進行readelf操作,也可以進行二進制指令轉彙編的操作
[root@wahoo
test]#objdump
-d
hello
6、程序運行
[root@wahoo
test]#./hello
hello
c!
7、總結:gcc
編譯c程序的主要過程包括
預編譯-編譯-彙編-連接
四個過程,每個過程都分別進行不同的處理,了解了這其中的一些原理,對c編程的理解大有益處
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/192526.html