tags:c
description:關於 gcc 的個人筆記
對於 gcc 6.1 以及之後的版本,預設使用的 c++ 標準是 c++ 14;使用 -std=c++11 來指定使用哪乙個標準
將源**編譯為可執行程式的流程
g++ 編譯時使用 c++ 的標準庫,而 gcc 預設使用 c 的標準庫,g++ 等價於 gcc -xc++ -lstdc++ -shared-libgcc
linux 下可以使用 man gcc 命令檢視幫助手冊
windows 下安裝 mingw 即可
gcc version 7.4.0 (gcc)
預處理(pre-processing):cpp hello.c > hello.i
,將引入的標頭檔案(#include)和定義的巨集(#define)擴充套件到**中
編譯(compilation):gcc -s hello.i
,將預處理過的檔案編譯成匯程式設計序
彙編(assembly):as -o hello.o hello.s
,將匯程式設計序轉換成目標檔案,二進位制格式,每乙個原始檔都需要產生乙個目標檔案
--version 檢視版本
-v verbose(冗長的),輸出編譯的詳細資訊
-std 指定標準
-o 指定輸出檔案的名稱
-wall 輸出所有的警告資訊
-c 只將原始檔編譯為 object 檔案(*.o),而不進行鏈結,之後可以使用gcc -o myprog.exe file1.o file2.o
將多個 object 檔案連線成可執行檔案
-shared 編譯為共享庫(.dll,.so)
-s 編譯為彙編**
gcc and make: compiling, linking and building
quickie intro to gcc
本文亦發布在:概述:c-語言編譯過程詳解
C語言編譯過程詳解
編譯的概念 編譯程式讀取源程式 字元流 對之進行詞法和語法的分析,將高階語言指令轉換為功能等效的彙編 再由匯程式設計序轉換為機器語言,並且按照作業系統對可執行檔案格式的要求鏈結生成可執行程式。編譯的完整過程 c源程式 預編譯處理 i 編譯 優化程式 s asm 匯程式設計序 obj o a ko 鏈...
c語言編譯過程詳解
c語言的編譯鏈結過程要把我們編寫的乙個c程式 源 轉換成可以在硬體上執行的程式 可執行 需要進行編譯和鏈結。編譯就是把文字形式源 翻譯為機器語言形式的目標檔案的過程。鏈結是把目標檔案 作業系統的啟動 和用到的庫檔案進行組織形成最終生成可執行 的過程。過程 如下 編譯過程 一 編譯過程 編譯過程又可以...
c語言編譯過程詳解
c語言的編譯鏈結過程要把我們編寫的乙個 c程式 源 轉換成可以在硬體上執行的程式 可執行 需要進行編譯和鏈結。編譯就是把文字形式源 翻譯為機器語言形式的目標檔案的過程。鏈結是把目標檔案 作業系統的啟動 和用到的庫檔案進行組織形成最終生成可執行 的過程。過程 如下 編譯過程 一 編譯過程 編譯過程又可...