1. 程式人生 > >C++原始碼生成可執行檔案的四個步驟

C++原始碼生成可執行檔案的四個步驟

以GCC編譯器為例:

第一步,預處理,包括語法檢查等工作。

$ gcc -P abc.c

會生成abc.i檔案。

第二步,編譯,由源程式生成組合語言程式碼。

$ gcc -S abc.c

會生成abc.s檔案,這個檔案就是彙編程式碼。

第三步,彙編,編譯器生成目的碼,一個源程式生成一個目的碼。

$ gcc -c abc.c

會生成abc.o檔案

第四部,連結, 連結器從目的碼生成可執行檔案。

$ gcc abc.o

目的碼包括機器碼和符號表(函式及變數名)。連結器的主要作用是通過符號表在庫檔案和其它模組中找到在目的碼中引入或未定義的符號(函式及變數名),將幾個目的碼合成可執行檔案。

相關推薦

C++原始碼生成執行檔案步驟

以GCC編譯器為例: 第一步,預處理,包括語法檢查等工作。 $ gcc -P abc.c 會生成abc.i檔案。 第二步,編譯,由源程式生成組合語言程式碼。 $ gcc -S abc.c 會生成abc.s檔案,這個檔案就是彙編程式碼。 第三步,彙編,編譯器生成目的碼,一個源

怎樣用Eclipse將Java原始碼生成執行檔案

eclipse將java原始碼生成jar可執行檔案 用eclipse做了一個web專案的自動化測試,自己用的時候倒是很方便,開啟eclipse直接執行即可,但是分享給其他小夥伴用的時候就不太方便,希望

C++原始碼如何生成執行檔案

先看一段最簡單的程式碼: #include <stdio.h> int main (int argc,char* arg[]) { printf("hello world"); return 0; } 如何把上面的程式碼轉換成可執行的程式碼呢,通常我們可以用g

C語言】概述從原始碼執行檔案

自第一次輸出“hello world” 「原始碼如何變成可執行檔案」的問題就一直伴隨著我 本次以《程式設計師的自我修養—連結、裝載與庫》為參考,對這一過程做簡單總結 簡介 高階語言的出現使得程式設計師可以 儘量少考慮計算機本身的限制(如字長、記憶體大小、通訊方式

Linux C 源程式 編譯連線生成 執行檔案

源程式 test.c第一種 ,編譯 gcc -c test.c -o test.o              連線 gcc -o test test.o第二種。              編譯連線              gcc -o test test.c執行    ./

C/C++程式從編譯到最終生成執行檔案的過程分析

     *******************************************************篇一*******************************************************************************************

由.c原始碼執行目標檔案的過程

c語言→預處理→編譯→彙編→連結(.c原始碼為test.c) 1.預處理 ①處理#開頭的命令(define include) ②巨集展開或巨集替換 ③命令:gcc -E test.c -o test.i 2.編譯 ①從c生成目標平臺的彙編(有語法分析) ②命令:gcc -S

、Android.mk之編譯生成執行檔案

一、簡介 對於學過Linux核心的來說,想要去編譯一個檔案,生成可執行檔案也好,打包成庫也罷,都是使用Makefile來管理編譯的。那麼對於Android底層開發來講,也是需要把咱們寫的程式碼,編譯成可執行檔案或者其他可用的檔案,才能使用起來。再Android對這些檔案的管

c/c++ 從原始碼執行檔案執行檔案如何執行

以一個例子開始分析:(以下所有實驗都是在linux下完成) //test.c int g_num=2000; char g_string[10000]="hello c"; int multi(int a,int b){ int result= a*b;

Linux下C語言生成執行文件的過程

代碼 內容 gcc 創建 inux 匯編代碼 機器 都是 inf 在當前目錄下創建一個C源文件並打開: touch test.c gedit test.c直接編譯: gcc test.c -o test 分步驟編譯: 1) 預處理 gcc -E test.c -o

C程式碼變成執行檔案的過程

C程式碼是如何變成程式的 C語言是一門典型的編譯語言,原始碼檔案需要編譯成目的碼檔案才能執行。可以認為程式檔案就是編譯好的目的碼檔案。以GCC的編譯過程為例。GCC的翻譯過程可以分成四個階段:前處理器、編譯器、彙編器、連結器,執行這四個階段的程式一起構成了一個編譯系統。 前

Linux:原始碼執行檔案(CRF++ python安裝)

這一過程又稱為編譯軟體原始碼。編譯是將原始碼(程式語言描述)翻譯成計算機處理器能識別的語言的過程。一 語言發展phase1:機器語言(數值程式碼,二進位制指令。)phase2:組合語言(有一些人理解的符號)phase3:高階程式語言(我們現在使用的語言)二 編譯程式語言(1)

Python:用Python程式呼叫C/C++編譯的執行檔案

[TODO] 用python程式呼叫C/C++編譯的可執行檔案 ************************華麗的分割線************************ step1:cppexec.cpp #include <iostream> int ad

c# 開啟外部執行檔案exe。

一、開啟程式。     先介紹    System.Diagnostics.Process類:用來啟動和停止程序的。         1、 Process pr = new Process();//宣告一個程序類物件             process.S

makefile簡單編寫-生成執行檔案

makefile 要想把寫好的程式放到linux下編譯,必不可少的要使用到makefile檔案。makefile帶來的好處就是——“自動化編譯”,一旦寫好,只需要一個make命令,整個工程完全自動編譯,極大的提高了軟體開發的效率。下面講下makefile簡單的

減小C語言生成執行檔案大小的方法(嵌入式)

編譯過程新增 -ffunction-sections和-fdata-sections 連結過程新增選項 -Wl,--gc-sections 可以使得編譯出來的程序去除無用函式和全域性變數符號,減少程序大小。 1. 編譯過程中新增-ffunction-s

C/C++程式減小執行檔案的大小

[Under the hood]---Matt Pietrek October 1996 MSJ Matt Pietrek October 1996 MSJ Matt Pietrek is the author of Windows 95 System Program

Linux中原始檔生成執行檔案的過程

原始檔通過編譯、連結形成可執行檔案 編譯 編譯可以分為三部分:預編譯,編譯,彙編 預編譯:main.c gcc     -E      main.c 編譯:main.i gcc     -S     main.i 彙編:main.s gcc     -c 

'假定以下程式經編譯和連線後生成執行檔案PROG.EXE,如果在此執行檔案所在目錄的DOS提示符下鍵入:PROG ABCDEFGH IJKL<回車>,則輸出結果為( ). void main( int argc, char *argv[]) { while(--argc>

main(int argc,char *argv[])函式的兩個形參,第一個int argc,是記錄你輸入在命令列(你題目中說的操作就是命令列輸入)上的字串個數;第二個*argv[]是個指標陣列,存放輸入在命令列上的命令(字串)。當命令列輸入PROG ABCDEFGH IJKL時,記錄了3

QT--生成執行檔案

QT 生成的可執行檔案exe在其他電腦還不能使用需要附帶DLL方法:windows下用cmd進入qt專案對應的release檔案中 然後執行windeployqt test.exe那麼對應的資料夾中會生成對應的dll檔案,一起打包就可以用了