歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux技術

Linux中.c文件到可執行文件的坎坷歷程

簡單來說,我們從源文件到可執行文件要經歷四大階段:預處理階段、編譯階段、匯編階段、鏈接階段。在Linux中,程序員可以根據自己的需要讓GCC在編譯的任何階段結束,並生成相應的文件
此處以hello.c作為例子
<span >#include<stdio.h>
int main()
{
    printf("hello world!");

    return 0;
}</span>

1.預處理階段:對以#開頭的語句進行處理,且不進行語法的檢查
預處理階段主要完成的三個功能:
①加載頭文件--Linux系統中的頭文件在 /user/include/stdio。
<span >#include<stdio.h> //把頭文件stdio.h中的內容加載到hello.c中的首部</span>

②宏替換
<span >   #define N 10</span>
③條件處理--#ifdef,#else,#endif
<span >   #include<stdio.h>
   #define N 10

   int main()
  {
       #ifdef N
       printf("hello world!");
       #else
       printf("welcome to you!");
       #endif

       return 0;
}</span>
2.編譯階段:對程序進行語法分析,詞法分析,語義分析
<span >    gcc -S hello.i -o hello.s //生成.o文件</span>
3.匯編階段:把匯編程序翻譯成CPU可識別識別的二進制文件,該文件又稱為目標文件
<span >    gcc -c hello.s -o hello.o //生成.s文件</span>
4.鏈接階段:把程序中所有木匾文件和所需要庫文件都鏈接在一起,最終生成一個可以直接運行的文件,稱為可執行文件。
<span >  gcc hello.o -o hello   //生成可執行文件</span>
<span >  ./hello      // 執行該文件</span>

小編初來乍到很多方面都寫的不好,推薦下列博文哦,希望能幫到大家(*^__^*) 嘻嘻……點擊打開鏈接/content/6179951.html
Copyright © Linux教程網 All Rights Reserved