程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> GCC編程基礎

GCC編程基礎

編輯:關於C語言

GCCGNU C Compiler)簡介

初次學習Linux 如有錯誤還請留言指定批評

1.gcc可以在多種硬件平台編譯出可執行程序,其執行效率比一般的編譯器相比高20%到30%。

2.GCC編譯器能將C、C++語言源程序、匯編程序編譯、鏈接成可執行文件。

3.在Linux系統中,可執行文件沒有統一的後綴,系統從文件的屬性來區分可執行文件和不可執行文件。

GCC通過後綴來區分的文件類別:

.c:c語言源代碼文件

.a:由目標文件構成的庫文件

.C、.cc、.cxx:C++源代碼文件

.h:頭文件

.i:已經預處理過的C源代碼文件

.ii:已經預處理過的C++源代碼文件

.o:編譯後的目標文件

.s:匯編語言代碼文件

.S:已經預處理過的匯編語言代碼文件

第一個程序

hello.c

#include<stdio.h>
int main(void)
{
    printf("hello world!\n");
    return 0;
 }

編譯指令

# gcc hello.c -o hello

運行指令

# ./hello

運行結果:

hello world!


gcc基本用法 gcc [options][filename]

options:編譯器需要的編譯選項

filename:要編譯的文件名

-o output_filename 編譯出可執行文件的名字 不給該選項系統將給出預設的可執行文件a.out

-c 只編譯不連接成可執行文件,生成.o為後綴的目標文件

-g 產生調試工具必要的符號信息,對程序調試必選加入此選項

-O 對程序編譯連接過程優化 優化後程序執行速度將大幅度提高)

-I dirname:將dirname所指出的目錄加入到程序頭文件目錄列表中

C程序頭文件包含兩種情況:#include<x.h>

#include"x.h"

對於<>預處理程序將系統預設的頭文件目錄中如/usr/include)中搜尋相應的文件

而" "如果當前目錄沒有找到需要的文件,就到指定的dirname目錄中去尋找。

-L dirname:將dirname所指出的目錄加入到庫文件目錄列表中。在默認狀態下,連接程序ld在系統的預設路徑中如/usr/lib)尋找所需要的庫文件 先到-L指定的目錄中去尋找,然後再到系統預設路徑去尋找。

-l 連接lib中的庫

-static : 靜態鏈接庫文件

庫分為動態庫和靜態庫,動態庫以.so後綴 靜態.a後綴。

使用靜態庫時,找到所需函數,程序將他們拷貝到可執行文件

動態庫 在可執行程序留下“標記”,當程序運行時載入動態庫函數

linux下進行鏈接時,默認選擇動態庫

例:gcc -static hello.c -o hello

-Wall 生成所有警告信息

-w 不生成警告

-D 預編譯選項





  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved