C 程式編譯執行具體步驟及各大系統中的編譯命令

2021-08-09 23:02:35 字數 1435 閱讀 8326

1.首先是編寫程式的源**,儲存在乙個檔案中,該檔案的字尾名應為cpp,cxx,.c等(該c是大寫,小寫c代表是c程式,根據c++的版本不同而有一些差異,但基本都識別cpp)。該檔案就是程式的源**檔案。

2.編譯源**,生成目標**檔案。編譯源**用到編譯器,如g++和clang。生成的目標**檔案的字尾名是  .o  。目標**檔案裡的內容是機器語言。

3.鏈結程式。即將目標**與其他**鏈結起來。如c++常用到的庫。最後生成可執行**或者叫可執行檔案。

linux中最常用的編譯器是g++,下面的命令是編譯源**檔案main.cpp,生成可執行檔案a.out。

g++ main.cpp
執行a.out可用以下命令:

./a.out

若要指定生成的可執行檔案的檔名,使用下面的命令:

g++ main.cpp -o test
執行該命令後生成可執行檔案test,以下命令執行該可執行檔案:

./test

同時編譯多個原始檔:

g++ test1.cpp test2.cpp

其中需要注意的是,該命令不會保留目標**檔案main.o。因此若需要目標**檔案,可以執行以下命令:

g++ -c main.cpp

目標**檔案都是機器語言,雖然看不懂,但保留目標**檔案有個好處就是當同時編譯了多個cpp檔案時,此時若修改了其中的乙個cpp檔案,不需要重新編譯全部原始檔,只需編譯被修改的原始檔,然後將它與其他原始檔的目標**檔案鏈結即可。

如有三個檔案:main.cpp   head.cpp   head,h

main.cpp:

#include#include#include"head.h"

using namespace std;

int main()

head.cpp:

#include#include"head.h"

#includeusing namespace std;

void print()

int sum(int x,int y)

head.h:

void print();

int sum(int x,int y);

當修改了head.cpp檔案時,只需執行以下命令即可:

g++ head.cpp main.o
前提是存在main.o。

windows:

參考:c++ primer plus

C 編譯,執行過程 具體解釋。

要更深入了解c 必需要知道乙個程式從開始到結束都幹了些什麼,怎麼幹的。所以我從c 編譯到執行過程,解析下程式是怎麼跑的。首先,初略的說一下之前c 的編譯過程。c 編譯過程包含預編譯 彙編 編譯 鏈結。稱為乙個可執行檔案。windows平台下為.exe檔案 預編譯主要展開包括的標頭檔案,巨集定義等操作...

語言編譯的步驟及裝入執行過程

一 預處理 主要功能 處理程式中的預處理語句 1.檔案包含 2.巨集的替換 3.條件編譯 二 編譯掃瞄 符號掃瞄 彙編 主要功能 將預處理完的程式掃瞄符號生成,翻譯成彙編 是否變數位址的對映替換在此步中完成的。優化程式 編譯器對程式編譯的優化處理是在何時刻進行的.三 彙編掃瞄 主要功能 將匯程式設計...

C程式編譯執行過程

c語言從源 到可執行檔案的過程 1 編譯預處理 讀取c源 對其中的偽指令 以 開頭的指令 和特殊符號進行處理 偽指令主要包括以下四個方面 1.1 巨集定義指令 define 定義巨集 undef 取消巨集的定義 預定義巨集 標準c中定義了一些物件巨集,這些巨集的名稱以 兩個下劃線 開頭和結尾,並且都...