C語言編譯全過程(有圖有真相)

從上圖能夠看到:
預編譯
將.c 文件轉化成 .i文件
使用的gcc命令是:gcc –E
對應於預處理命令cpp
編譯
將.c/.h文件轉換成.s文件
使用的gcc命令是:gcc –S
對應於編譯命令   cc –S
彙編
將.s 文件轉化成 .o文件
使用的gcc 命令是:gcc –c
對應於彙編命令是  as
連接
將.o文件轉化成可執行程序
使用的gcc 命令是: gcc
對應於連接命令是  ld

總結起來編譯過程就上面的四個過程:預編譯處理(.c) --> 編譯、優化程序(.s、.asm)--> 彙編程序(.obj、.o、.a、.ko) --> 連接程序(.exe、.elf、.axf等)

java

注:以上所有參考C語言編譯全過程介紹,下面給出本身的實驗,至於對理論沒清楚的多搜搜資料
shell



 

    編譯以前,建立一個名字爲testCompile.c的源文件程序,並保存編程

$ vi testCompile.c


     預編譯

$ clang -E testCompile.c -o testCompile.i

    編譯

$ clang -S testCompile.i -o testCompile.s


    彙編

$ clang -c testCompile.s -o testCompile.o



    連接

$ clang testCompile.o -o out

相關文章
相關標籤/搜索