前言
相信能看到這篇文章的同學,是對C語言很熱愛的人,
最開始學習C語言的時候,我們大多數人都是用集成開發環境,VS、VC、devc++等,
當我們把C語言源代碼寫好了之后,在集成開發工具中這里點一下,哪里點一下,代碼就跑起來了,這種快樂的感覺的確是對初學者的一種最好的鼓勵,可是,你別忘記了,我們要做一個資深的程式員,知其所以然是必不可少的,下面我就帶大家了解一下我們撰寫的C語言源檔案(.c)到底是如何一步步變成可執行檔案(.exe/.elf) 的
程序
四個程序:
預處理(-E):展開 .h、宏定義等,形成 .i 檔案;
編譯(-S):生成一個匯編代碼檔案,形成 .s 檔案;
匯編(-c):匯編程序將上一步的匯編代碼轉換成機器碼(machine code),這一步產生的檔案叫做目標檔案,是二進制格式,形成 .o 檔案,
鏈接:鏈接程序將多個目標文以及所需的庫檔案(.so等)鏈接成最終的可執行檔案(executable file),
友情提示:注意大小寫,要不然你會報錯的,
代碼演示
.c 源代碼
#include<stdio.h>
#include<stdlib.h>
#define STR "Hello World"
int main()
{
printf(STR);
return 0;
}
預處理(-E):展開 .h、宏定義等,形成 .i 檔案;
gcc -E hello.c -o hello.i

編譯(-S):生成一個匯編代碼檔案,形成 .s 檔案;
gcc -S hello.i -o hello.s

匯編(-c):匯編程序將上一步的匯編代碼轉換成機器碼(machine code),這一步產生的檔案叫做目標檔案,是二進制格式,形成 .o 檔案,
gcc -c hello.s -o hello.o

鏈接:鏈接程序將多個目標文以及所需的庫檔案(.so等)鏈接成最終的可執行檔案(executable file),
gcc hello.o -o hello

在這一步中可能會報錯,如下:

你重新生成一下 .o 目標檔案,改成別的名字就好了,
根本原因是上一步要用小寫的 -c
最后生成的 .exe 雙擊執行就可以看到 “Hello World” 了,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/287928.html
標籤:其他
下一篇:中年程式員創業的幾點經驗分享!
