国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Linux|Centos|Ubuntu|系統進程|Fedora|注冊表|Bios|Solaris|Windows7|Windows10|Windows11|windows server|

服務器之家 - 服務器系統 - Centos - CentOS如何查看當前系統下的gcc版本命令?

CentOS如何查看當前系統下的gcc版本命令?

2019-06-22 15:22CentOS之家 Centos

Linux系統下的Gcc是GNU推出的功能強大、性能優越的多平臺編譯器,是GNU的代表作品之一。今天小編為大家帶來的是CentOS查看當前系統下的gcc版本命令的方法,有需要的朋友一起去看看吧

1. gcc -v(Display the programs invoked by the compiler)

[root@localhost /]# gcc -v

Reading specs from /usr/i386-glibc-2.1-linux/lib/gcc-lib/i386-glibc21-linux/egcs-2.91.66/specs

gcc version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)

2. rpm -qa|grep gcc

rpm -qi gcc

[root@localhost /]# rpm -qa|grep gcc

gcc-3.2.2-5

gcc-c++-3.2.2-5

libgcc-3.2.2-5

compat-gcc-7.3-2.96.118

gcc-g77-3.2.2-5

gcc-java-3.2.2-5

gcc-gnat-3.2.2-5

compat-gcc-c++-7.3-2.96.118

3. gcc -dumpversion (Display the version of the compiler)

[root@localhost /]# gcc -dumpversion

egcs-2.91.66

*******************************************************************************************

Linux系統下的Gcc(GNU C Compiler)是GNU推出的功能強大、性能優越的多平臺編譯器,是GNU的代表作品之一。gcc是可以在多種硬體平臺上編譯出可執行程序的超級編譯器,其執行效率與一般的編譯器相比平均效率要高20%~30%。

Gcc編譯器能將C、C++語言源程序、匯程式化序和目標程序編譯、連接成可執行文件,如果沒有給出可執行文件的名字,gcc將生成一個名為a.out的 文件。在Linux系統中,可執行文件沒有統一的后綴,系統從文件的屬性來區分可執行文件和不可執行文件。而gcc則通過后綴來區別輸入文件的類別,下面 我們來介紹gcc所遵循的部分約定規則。

.c為后綴的文件,C語言源代碼文件;

.a為后綴的文件,是由目標文件構成的檔案庫文件;

.C,.cc或.cxx 為后綴的文件,是C++源代碼文件;

.h為后綴的文件,是程序所包含的頭文件;

.i 為后綴的文件,是已經預處理過的C源代碼文件;

.ii為后綴的文件,是已經預處理過的C++源代碼文件;

.m為后綴的文件,是Objective-C源代碼文件;

.o為后綴的文件,是編譯后的目標文件;

.s為后綴的文件,是匯編語言源代碼文件;

.S為后綴的文件,是經過預編譯的匯編語言源代碼文件。

Gcc的執行過程

雖然我們稱Gcc是C語言的編譯器,但使用gcc由C語言源代碼文件生成可執行文件的過程不僅僅是編譯的過程,而是要經歷四個相互關聯的步驟∶預處理(也 稱預編譯,Preprocessing)、編譯(Compilation)、匯編(Assembly)和連接(Linking)。

命令gcc首先調用cpp進行預處理,在預處理過程中,對源代碼文件中的文件包含(include)、預編譯語句(如宏定義define等)進行分析。接 著調用cc1進行編譯,這個階段根據輸入文件生成以.o為后綴的目標文件。匯編過程是針對匯編語言的步驟,調用as進行工作,一般來講,.S為后綴的匯編 語言源代碼文件和匯編、.s為后綴的匯編語言文件經過預編譯和匯編之后都生成以.o為后綴的目標文件。當所有的目標文件都生成之后,gcc就調用ld來完 成最后的關鍵性工作,這個階段就是連接。在連接階段,所有的目標文件被安排在可執行程序中的恰當的位置,同時,該程序所調用到的庫函數也從各自所在的檔案 庫中連到合適的地方。

Gcc的基本用法和選項

在使用Gcc編譯器的時候,我們必須給出一系列必要的調用參數和文件名稱。Gcc編譯器的調用參數大約有100多個,其中多數參數我們可能根本就用不到,這里只介紹其中最基本、最常用的參數。

Gcc最基本的用法是∶gcc [options] [filenames]

其中options就是編譯器所需要的參數,filenames給出相關的文件名稱。

-c,只編譯,不連接成為可執行文件,編譯器只是由輸入的.c等源代碼文件生成.o為后綴的目標文件,通常用于編譯不包含主程序的子程序文件。

-o output_filename,確定輸出文件的名稱為output_filename,同時這個名稱不能和源文件同名。如果不給出這個選項,gcc就給出預設的可執行文件a.out。

-g,產生符號調試工具(GNU的gdb)所必要的符號資訊,要想對源代碼進行調試,我們就必須加入這個選項。

-O,對程序進行優化編譯、連接,采用這個選項,整個源代碼會在編譯、連接過程中進行優化處理,這樣產生的可執行文件的執行效率可以提高,但是,編譯、連接的速度就相應地要慢一些。

-O2,比-O更好的優化編譯、連接,當然整個編譯、連接過程會更慢。

-Idirname,將dirname所指出的目錄加入到程序頭文件目錄列表中,是在預編譯過程中使用的參數。C程序中的頭文件包含兩種情況∶

A)#include

B)#include “myinc.h”

其中,A類使用尖括號(< >),B類使用雙引號(“ ”)。對于A類,預處理程序cpp在系統預設包含文件目錄(如/usr/include)中搜尋相應的文件,而對于B類,cpp在當前目錄中搜尋頭文件, 這個選項的作用是告訴cpp,如果在當前目錄中沒有找到需要的文件,就到指定的dirname目錄中去尋找。在程序設計中,如果我們需要的這種包含文件分 別分布在不同的目錄中,就需要逐個使用-I選項給出搜索路徑。

-Ldirname,將dirname所指出的目錄加入到程序函數檔案庫文件的目錄列表中,是在連接過程中使用的參數。在預設狀態下,連接程序ld在系統 的預設路徑中(如/usr/lib)尋找所需要的檔案庫文件,這個選項告訴連接程序,首先到-L指定的目錄中去尋找,然后到系統預設路徑中尋找,如果函數 庫存放在多個目錄下,就需要依次使用這個選項,給出相應的存放目錄。

-lname,在連接時,裝載名字為“libname.a”的函數庫,該函數庫位于系統預設的目錄或者由-L選項確定的目錄下。例如,-lm表示連接名為“libm.a”的數學函數庫。

上面我們簡要介紹了gcc編譯器最常用的功能和主要參數選項,更為詳盡的資料可以參看Linux系統的聯機幫助。

假定我們有一個程序名為test.c的C語言源代碼文件,要生成一個可執行文件,最簡單的辦法就是∶

gcc test.c

這時,預編譯、編譯連接一次完成,生成一個系統預設的名為a.out的可執行文件,對于稍為復雜的情況,比如有多個源代碼文件、需要連接檔案庫或者有其他比較特別的要求,就要給定適當的調用選項參數。再看一個簡單的例子。

整個源代碼程序由兩個文件testmain.c 和testsub.c組成,程序中使用了系統提供的數學庫,同時希望給出的可執行文件為test,這時的編譯命令可以是∶

gcc testmain.c testsub.c □lm □o test

其中,-lm表示連接系統的數學庫libm.a。

Gcc的錯誤類型及對策

Gcc編譯器如果發現源程序中有錯誤,就無法繼續進行,也無法生成最終的可執行文件。為了便于修改,gcc給出錯誤資訊,我們必須對這些錯誤資訊逐個進行 分析、處理,并修改相應的語言,才能保證源代碼的正確編譯連接。gcc給出的錯誤資訊一般可以分為四大類,下面我們分別討論其產生的原因和對策。

第一類∶C語法錯誤

錯誤資訊∶文件source.c中第n行有語法錯誤(syntex errror)。這種類型的錯誤,一般都是C語言的語法錯誤,應該仔細檢查源代碼文件中第n行及該行之前的程序,有時也需要對該文件所包含的頭文件進行檢 查。有些情況下,一個很簡單的語法錯誤,gcc會給出一大堆錯誤,我們最主要的是要保持清醒的頭腦,不要被其嚇倒,必要的時候再參考一下C語言的基本教 材。

第二類∶頭文件錯誤

錯誤資訊∶找不到頭文件head.h(Can not find include file head.h)。這類錯誤是源代碼文件中的包含頭文件有問題,可能的原因有頭文件名錯誤、指定的頭文件所在目錄名錯誤等,也可能是錯誤地使用了雙引號和尖括號。

第三類∶檔案庫錯誤

錯誤資訊∶連接程序找不到所需的函數庫,例如∶

ld: -lm: No such file or directory

這類錯誤是與目標文件相連接的函數庫有錯誤,可能的原因是函數庫名錯誤、指定的函數庫所在目錄名稱錯誤等,檢查的方法是使用find命令在可能的目錄中尋找相應的函數庫名,確定檔案庫及目錄的名稱并修改程序中及編譯選項中的名稱。

第四類∶未定義符號

錯誤資訊∶有未定義的符號(Undefined symbol)。這類錯誤是在連接過程中出現的,可能有兩種原因∶一是使用者自己定義的函數或者全局變量所在源代碼文件,沒有被編譯、連接,或者干脆還沒 有定義,這需要使用者根據實際情況修改源程序,給出全局變量或者函數的定義體;二是未定義的符號是一個標準的庫函數,在源程序中使用了該庫函數,而連接過 程中還沒有給定相應的函數庫的名稱,或者是該檔案庫的目錄名稱有問題,這時需要使用檔案庫維護命令ar檢查我們需要的庫函數到底位于哪一個函數庫中,確定 之后,修改gcc連接選項中的-l和-L項。

排除編譯、連接過程中的錯誤,應該說這只是程序設計中最簡單、最基本的一個步驟,可以說只是開了個頭。這個過程中的錯誤,只是我們在使用C語言描述一個算 法中所產生的錯誤,是比較容易排除的。我們寫一個程序,到編譯、連接通過為止,應該說剛剛開始,程序在運行過程中所出現的問題,是算法設計有問題,說得更 玄點是對問題的認識和理解不夠,還需要更加深入地測試、調試和修改。一個程序,稍為復雜的程序,往往要經過多次的編譯、連接和測試、修改。下面我們學習的 程序維護、調試工具和版本維護就是在程序調試、測試過程中使用的,用來解決調測階段所出現的問題

延伸 · 閱讀

精彩推薦
  • CentosCentOS7設置日期和時間方法以及基本概念介紹

    CentOS7設置日期和時間方法以及基本概念介紹

    這篇文章主要介紹了CentOS7設置日期和時間方法以及基本概念介紹,本文講解使用CentOS7中的新命令timedatectl設置日期時間方法,需要的朋友可以參考下 ...

    CentOS之家6522019-09-19
  • Centoscentos不小心刪除/root目錄該如何解決?

    centos不小心刪除/root目錄該如何解決?

    一些朋友最近在問小編centos不小心刪除/root目錄該如何解決?今天小編就為大家分享centos不小心刪除/root目錄解決辦法;希望對大家會有幫助,有需要的朋友...

    腳本之家8022019-05-29
  • CentosCentOS 6.6實現永久修改DNS地址的方法

    CentOS 6.6實現永久修改DNS地址的方法

    這篇文章主要介紹了CentOS 6.6實現永久修改DNS地址的方法,涉及針對CentOS配置文件的相關設置技巧,具有一定參考借鑒價值,需要的朋友可以參考下 ...

    Linux社區4472020-08-21
  • CentosCentOS下Uptime命令詳解

    CentOS下Uptime命令詳解

    在Linux下,我們可以使用uptime命令,而且此命令不必使用root權限。uptime命令在系統中已經默認安裝了。今天小編為大家帶來的是CentOS下Uptime命令詳解;希望...

    CentOS之家11482019-06-19
  • CentosCentOS6.5下Redis安裝與配置詳細步驟

    CentOS6.5下Redis安裝與配置詳細步驟

    本篇文章主要介紹了CentOS6.5下Redis安裝與配置詳細步驟,詳細介紹redis單機單實例安裝與配置,服務及開機自啟動。有興趣的可以了解一下。...

    飛流11452021-12-24
  • CentosCentos 7開啟網卡自動獲取IP的詳細方法

    Centos 7開啟網卡自動獲取IP的詳細方法

    本篇文章主要介紹了Centos 7開啟網卡自動獲取IP的詳細方法,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧...

    凌鋒8972021-12-29
  • Centoscentos 安裝與操作方法

    centos 安裝與操作方法

    這篇文章主要介紹了centos 安裝與操作方法,需要的朋友可以參考下...

    centos之家5272019-07-11
  • CentosCentos7運用/dev/shm進行網站優化

    Centos7運用/dev/shm進行網站優化

    這篇文章主要介紹了LINUX中Centos7運用/dev/shm進行網站優化相關知識點,對此有興趣的朋友參考學習下。...

    彬菌9912022-03-02
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 亚洲第一福利视频 | 国产乱码精品一区二区三区中文 | 国产精品成人国产乱一区 | 热久久这里只有精品 | 成人久久久 | 中文精品在线 | 亚洲成人精选 | 日本一区二区高清视频 | 香蕉久久夜色精品国产使用方法 | 国产精品视频一二三区 | 免费成人在线观看 | 依人在线| 久久久精品国产 | 综合久 | 高清日韩av | 中文字幕在线导航 | 亚洲在线第一页 | 国产欧美精品一区二区色综合 | 亚洲欧美观看 | 激情综合网激情 | 成人免费视频网站在线看 | 中文字幕高清视频 | 成人h动漫精品一区二区樱花 | 欧美国产精品一区二区三区 | 黄色精品在线 | 在线观看91视频 | 先锋影音av在线 | 一本色道精品久久一区二区三区 | 国产精品久久久久一区二区三区 | 国产精品激情在线观看 | 日日操视频 | 亚洲欧美日韩精品 | 91av视频免费在线观看 | 中文在线一区二区 | 色爱综合网| 综合自拍 | 久久视频一区 | 亚洲字幕成人中文在线观看 | 久久久精品综合 | 特级黄一级播放 | 久久久久国产一级毛片高清片 |