linux命令編譯C語言程式

2021-10-14 14:45:15 字數 2203 閱讀 9179

bcpl->newb->c->unix->linux->gcc

c語言專門編寫作業系統的語言,所以天生適合對硬體程式設計,也以執行速度快著稱,也非常適合實現資料結構和演算法。

由於出現時間過早,有很多缺陷,也沒想普通人會使用c語言程式設計,因此存在著些陷井,但前輩總結了一些避免的經驗《c語言陷井和缺陷》。

自由源於自律

c89語法標準,也是gcc預設的語法標準。

c99語法標準,對c語言的擴充套件和增強 std=gnu99。

c11語法標準,全新的公升級。

#include

程式設計師所編寫的**不是標準的c**,需要一段程式反它釋放成標準的c**,負責翻譯的程式叫預處理器,翻譯的過程叫預處理,被釋翻譯的**叫預處理指令,以#號開頭的都是預處理指令。

#include 的功能就把乙個標頭檔案匯入到當前檔案。

#include 「***.h」 先當前路徑下載入***.**件,如果沒有再從系統指定的 路徑下載入***.**件。

#include <> 從系統指定的路徑下載入***.**件。

作業系統通過設定環境變數來指定載入標頭檔案的路徑。

stdio.h

標頭檔案:以.h結尾,裡面儲存是一些輔助性的**,絕大多數是函式的宣告(也就是函式的開頭)。

原始檔:以.c結尾,裡面記錄的是功能性的**。

c語言標準委員會為c語言以函式形式提供了一些基礎功能,這些函式被封裝在libc.so庫檔案中。

有很多標頭檔案負責對libc.so進行說明,stdio.h就是其中乙個,常用的還有stdlib.h、string.h。

stdio.h負責對輸入輸出功能的函式進行說明,standard input output。

int

main()

c語言以函式以單位管理**,乙個函式就一段具有某項功能的**段。

main函式是程式的執行入口,有且只有有乙個。

int 是一種資料型別,它表示main的執行結果是乙個整數。

return 功能有兩個:1、結束函式的執行 2、返回乙個資料給函式的呼叫者

main函式由作業系統呼叫,它的返回值給了作業系統,反映了該程式是怎麼結束的,通常有三種:

正數 出現異常

0 一切正常

負數 出現錯誤

echo $? 檢視上一程式main函式的返回值。

printf/scanf是標準庫中的函式,負責輸入、輸出資料,用來除錯程式。

轉義字元:鍵盤上沒有一些符號,有一些特殊字元來表示,這些特殊字元叫轉義字元,\n就是其中乙個。

\n 換行

\r 回到行首

\t 製表符,對來自動對齊資料

\a 鈴響

%% 顯示乙個%

\\ 表示乙個\

\b 退乙個字元

c語言以分號作為一行**的結束,使用大括號劃分代表區域。

gcc是gnu社群為了編譯linux**而開發一款免費的編譯器,預設採用c89語法,-std=gnu99可以設定c99語法。

常用的引數:

-e 顯示預處理結果

-c 只編譯不鏈結

-o 設定編譯結果的名字

-i 指定標頭檔案的載入路徑

-s 生成彙編**

-l 指定要使用庫,-lm 使用數學庫

-werror 把警告當錯誤處理

-std 指定編譯語法標準

1、預處理 把原始檔翻譯成預處理檔案

gcc -e code.c 顯示預處理結果

gcc -e code.c -o code.i 生成以.i結尾的預處理檔案

2、編譯 把預處理檔案翻譯成彙編檔案

gcc -s code.i 生成以.s結尾的彙編檔案

3、彙編 把彙編檔案翻譯成二進位制的目標檔案

gcc -c code.s 生成以.o結尾的目標檔案

4、鏈結 把若干個目錄檔案合併成乙個可執行程式

gcc a.o b.o ... 預設生成乙個a.out的可執行程式

.h 標頭檔案

.h.gch 標頭檔案的編譯結果,它會被優先使用

.c 原始檔

.i 預處理檔案

.s 彙編檔案

.o 目標檔案

.a 靜態庫

.so 共享庫

感謝關注~~會持續、定期更新

Linux下C 程式常用編譯命令

2010 9 4 kagula 文中涉及的命令在 ubuntu8.04.1 中測試通過,本文的目的是為了以後要用的時候,只要看一下本文就馬上能回憶起這此命令怎麼用。生成目標檔案 gcc c 可以有多個 cpp檔案 編譯靜態庫 arcr 可以有多個 o檔案 目標檔案 靜態庫名的命名方式應該是 lib ...

linux下用命令編譯 除錯C 程式

先安裝gcc sudo apt get install gcc寫乙個c 的程式,然後用下面的命令編譯 g test.cpp g當然你要找到你寫的那個cpp檔案的路徑。編譯後會產生乙個檔案 a.out,這就是編譯後的結果。在window中,這個檔案是a.exe。這個檔名也可以自己手動指定,如 g te...

gcc編譯c語言程式

編譯 當前源 編譯成二進位制目標檔案 obj檔案 乙個現代編譯器的主要工作流程如下 源程式 source code 預處理器 preprocessor 編譯器 compiler 匯程式設計序 assembler 目標程式 object code 聯結器 鏈結器,linker 可執行程式 execut...