Linux 編譯器之 GCC
上一節我們學習了 vim 編輯器,接下來我們一起學習 gcc 編譯器,這裡,我們要區分編輯器和編譯器有何不同?
編輯器是指我用它來寫程式的(編輯程式碼),而我們寫的程式碼語句,電腦是不懂的,我們需要把它轉成電腦能懂的語句,編譯器就是這樣的轉化工具。就是說,我們用編輯器編寫程式,由編譯器編譯後才可以執行!
編譯器是將易於編寫、閱讀和維護的高階計算機語言翻譯為計算機能解讀、執行的低階機器語言的程式。
GCC(GNU Compiler Collection,GNU 編譯器套件),是由 GNU 開發的程式語言編譯器。GCC 原本作為GNU作業系統的官方編譯器,現已被大多數類Unix作業系統(如 Linux、BSD、Mac OS X 等)採納為標準的編譯器,GCC 同樣適用於微軟的 Windows。
GCC 最初用於編譯 C 語言,隨著專案的發展 GCC 已經成為了能夠編譯 C、C++、Java、Ada、fortran、Object C、Object C++、Go 語言的編譯器大家族。
這裡只是簡單介紹如何編譯 C 程式或者 C++ 程式最終成為一個可執行程式。
gcc識別的副檔名如下:
.c C 語言檔案
.i 預處理後的 C 語言檔案
.C、.cc、.cp、.cpp、.c++、.cxx C++語言檔案
.ii 預處理後的 C++ 語言檔案
.S 彙編檔案(使用者自己新建的彙編檔案)
.s 預處理後的彙編檔案
.o 編譯後的目標檔案
.a 目標檔案的靜態連結庫(連結時使用)
.so 目標檔案的動態連結庫(連結、執行時使用)
gcc 和 g++ 編譯器的編譯過程
1、預處理
2、編譯
3、彙編
4、連結
gcc 常用編譯應用例項
分步編譯:
1)gcc -E hello.c -o hello.i
2)gcc -S hello.i -o hello.s
3)gcc -c hello.s -o hello.o
4)gcc hello.o -o hello_elf
編譯選項說明:
-o file 指定生成的輸出檔名為 file
-E 只進行預處理
-S 只進行預處理和編譯
-c 只進行預處理、編譯和彙編
檔名字尾說明:
.c C 語言檔案
.i 預處理後的 C 語言檔案
.s 預處理後的彙編檔案
.o 編譯後的目標檔案
程式編譯成功後,通過“./”執行這個可執行程式。
常用編譯(還是經過:預處理、編譯、彙編、連結的過程):
gcc hello.c -o demo
如果是 C++ 程式碼,只需改用 g++ 編譯器即可。
如果沒有 g++ 編譯器,線上安裝即可:
使用 g++ 編譯 c++ 程式:
gcc、g++ 編譯的其它一些選項
-v 顯示製作gcc工具時的配置命令,顯示前處理器、編譯器的版本號
-Wall 生成所有級別的警告資訊
-w關閉所有警告,建議不使用此選項
-Idir將dir目錄加入標頭檔案搜尋目錄列表,優先在dir目錄中查詢包含的標頭檔案
-Ldir
將dir目錄加入庫檔案目錄列表,優先在dir目錄中查詢庫檔案
-lname
連結庫為name的庫
-static
連結時使用靜態庫
-shared
編譯動態庫
相關推薦
Linux 編譯器之 GCC
上一節我們學習了 vim 編輯器,接下來我們一起學習 gcc 編譯器,這裡,我們要區分編輯器和編譯器有何不同? 編輯器是指我用它來寫程式的(編輯程式碼),而我們寫的程式碼語句,電腦是不懂的,我們需要把它轉成電腦能懂的語句,編譯器就是這樣的轉化工具。就是說,我們用編輯器
Linux之gcc與g++編譯器
1.2 -c span logs style div out com 成了 1.gcc編譯器 gcc編譯器開發初期定位為C編譯器(GNU C Compiler),但隨著時間的發展gcc編譯器能夠支持多種語言。 1.1 gcc編譯器的使用 假如我們已經有了.c文件名稱
嵌入式Linux開發工具之gcc編譯器
gcc的簡介 編譯器gcc所具備的優點 1、GNU CC(簡稱為gcc)是GNU專案中符合ANSI C標準的編譯系統,能夠編譯用C、C++和Object C等語言編寫的程式。gcc不僅功能強大,而且可以編譯如C、C++、Object C、Java、和Ad
Linux——CentOS7安裝gcc編譯器詳解
com eps 以及 鏡像 lib c++ c++編譯 c、c++ lin 使用yum安裝gcc 使用yum命令安裝還是非常easy的。 yum -y install gcc gcc-c++ kernel-devel //安裝gcc、c++編譯器以及內核文件 手動安裝gc
Linux編譯器——gcc
一、介紹 GCC(GNU Compiler Collection,GNU編譯器套件),是由 GNU 開發的程式語言編譯器。GCC原本作為GNU作業系統的官方編譯器,現已被大多數類Unix作業系統(如Linux、BSD、Mac OS X等)採納為標準
Linux中的gcc編譯器
Gcc命令使用GNU推出的基於C/C++的編譯器,是開放原始碼領域應用最廣泛的編譯器,具有功能強大,編譯程式碼支援效能優化等特點。 語法: gcc(選項)(引數) 選項: -o:指定生成的輸出檔案; -E:僅執行編譯預處理; -S:將C程式碼轉換為彙編程式碼;
Linux學習(C語言學習之Gcc)
Linux的學習需要對C語言有一個透徹性的瞭解,需要有非常好的C語言基礎,Gcc是Linux中的C檔案的一個編譯器(當然也不只侷限於C檔案)。 Gcc最初的全名是GNU C Compiler 隨著Gcc支援的語言越來越多,它的名稱變成了GNU Compiler
Linux C/C++ 編譯器cc\gcc\g++\c++區別
使用Linux系統的編譯c或者c++的人,都知道Linux系統的編譯器有cc\gcc\g++\c++,但是他們之間到底是什麼關係呢? 首先到系統的/usr/bin路徑下,使用命令:ll | grep cc,可以看到如下: 由此,可以知道LInux系統下,cc就是gcc
Linux之GCC學習筆記
GCC(全稱:GNU C Compiler),隨著GCC支援的語言越來越多,它的名稱變成了GNU Compiler Collection。 gcc -o 輸出檔名 輸入檔名 預處理:cpp -o *.i *.c(gcc -E) 編譯:cc1 -o *.s *.
Linux作業系統至gcc編譯器、makefile
gcc編譯器: 將高階語言程式碼編譯成為機器可識別的指令程式碼 編譯檔案 編譯步驟:
基於Linux下的GCC編譯器的內部預巨集定義與__attribute__屬性
***************************************************************************************************************************** 作者:EasyWav
linux開發之交叉編譯器環境搭建系統相容的問題
這段時間我在用成都英創的6800開發板進行linux的開發學習。原來他們家提供的開發環境是eclipse.exe.但是在這版中他們提供了交叉環境的搭建教程,並提供了QT程式設計的。所以我也開始搭建環境的技術之旅。 在按照英創提供的QT安裝教程中他提供的編譯器是32位系統
Linux編譯器gcc/g++的使用
庫的概念 1.庫的定義 本質上來說庫是一種可執行程式碼的二進位制形式,可以被作業系統載入記憶體執行。 2.庫的分類 linux 下的庫有兩種:靜態庫和共享庫(動態庫)。 二者的不同點在於程式碼被載入的時刻不同。 靜態庫的程式碼在編譯過程中
linux和windows gcc g++ vc編譯器位元組對齊
首先可以肯定的說,肯定和編譯器有關,vc編譯器和gcc,g++編譯器肯定不一樣,不說明是什麼編譯器什麼系統下問你結構體長度就是在耍流氓。 (1)vc編譯器下結構體成員首地址地址必須被該結構體成員長度整除,打個比方,double a的首地址如果為0x06, 那是不行的,再填2
Linux之GCC命令 -- 解析GCC編譯的四個過程
在Linux下進行C語言程式設計,必然要採用GNU GCC來編譯C原始碼生成可執行程式。Gcc指令的一般格式為: Gcc [選項] 要編譯的檔案 [選項] [目標檔案]。其中,目標檔案可預設,Gcc預設生成可執行的檔名為:編譯檔案.out 看一下經典入門程式"Hello W
關於linux環境下GCC與g++編譯器高低版本轉換的問題
在安裝完gcc編譯器之後 在/usr/bin目錄下執行以下命令 $ ls -l gcc* lrwxrwxrwx 1 root root 7 2011-10-29 09:11 gcc -> gcc-4.6 -rwxr-xr-x 1 root roo
linux開發工具之gcc
img alt nbsp bsp linu 開發工具 info 鏈接 開發 首先gcc編譯鏈接的一個實例如下所示: 接下來看一下gcc的常見選項: gcc的使用示例: linux開發工具之gcc
我的Linux自學之路
記錄學習 作為一只菜鳥,並且沒有任何Linux的經驗,我從網上下載的視頻自學Linux。歡迎各位新手或大師指點,開通博客意在記錄自己學習的點滴。 由於項目在公安行業內,系統的版本無法跟現代的大型網後臺的系統版本相提並論。公安系統的版本大多停留在四五年前,因為是自學,下載的視頻也是四五年前的,所以後
Linux學習之用戶管理
shell 已過期 useradd 系統 user 影子 所屬組 有用 刪除用戶 /etc/passwd Linux系統將用戶信息保存在文件/etc/passwd中 文件中一行代表一個用戶,所以文件有多少行就代表系統有多少用戶。每一行都被用冒號隔開分成7個字段,我們先了解
linux應用之vim的安裝與配置(centos)
utf8 power scroll pbo gb2312 nco pla red vma 1.vim的安裝 #yum search vim //查看vim相關軟件信息 #yum install -y vim* //在線安裝vim 2.vim的配置 (1)~/.vimi