• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 心隨心動---GCC的發展之路

    發表于:2007-05-25來源:作者:點擊數: 標簽:發展心隨心動---GCC轉自
    轉自csdn http://www.csdn.net/subject/gcc/ 不經意間,GCC已發展到了4.0的版本,盡管在軟件 開發 社區之外乏人聞問,但因為GCC在幾乎所有 開源 軟件和自由軟件中都會用到,因此它的編譯 性能 的漲落會直接影響到Linux 、Firefox 乃至于OpenOffice.org和Apac

    轉自csdn http://www.csdn.net/subject/gcc/

    不經意間,GCC已發展到了4.0的版本,盡管在軟件開發社區之外乏人聞問,但因為GCC在幾乎所有開源軟件和自由軟件中都會用到,因此它的編譯性能的漲落會直接影響到Linux 、Firefox 乃至于OpenOffice.org和Apache等幾千個項目的開發。因此,把GCC擺在開源軟件的核心地位是一點也不為過。另一方面,GCC4.0的出現,正在牽引著廣大程序員們的心。如果我們非要用一個詞來說明GCC與程序員之間的關系,那無疑是"心隨心動"。

    歷史篇
    作為自由軟件的旗艦項目,Richard Stallman 在十多年前剛開始寫作 GCC 的時候,還只是把它當作僅僅一個 C 程序語言的編譯器;GCC 的意思也只是 GNU C Compiler 而已。經過了這么多年的發展,GCC 已經不僅僅能支持 C 語言;它現在還支持 Ada 語言、C++ 語言、Java 語言、Objective C 語言、Pascal 語言、COBOL語言,以及支持函數式編程和邏輯編程的 Mercury 語言,等等。而 GCC 也不再單只是 GNU C 語言編譯器的意思了,而是變成了 GNU Compiler Collection 也即是 GNU 編譯器家族的意思了。另一方面,說到 GCC 對于各種硬件平臺的支持,概括起來就是一句話:無所不在。幾乎所有有點實際用途的硬件平臺,甚至包括有些不那么有實際用途的硬件平臺。

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

    GCC 3.0印象記
    從1999年4月開始,GCC的含義從GNU C Compiler變成了GNU Compiler Collection,支持C、C++、Objective C、Chill、Fortan和Java等語言。其中C++編譯器G++當然是我們關注的焦點。從GCC網站的介紹中可以看出,G++作了不少改進,更好地支持C++標準。我們將選出相關的內容逐一評論。我們對GCC 3.0的總體印象是,有不少改進,但"革命尚未成功",還得加把勁兒。
    技術篇
    GCC是整個協作軟件開發理念的基礎,時至今日,GCC的使用范圍已不僅僅限于Linux平臺,而是擴展到了包括Windows在內的很多平臺。這樣,GCC性能的高低,還關系到許多專有軟件的核心競爭力。

    Linux上安裝GCC編譯器過程

    在cygwin下安裝gcc4.0

    GCC——一切從這里開始



    要想讀懂本文,你需要對C語言有基本的了解,本文將介紹如何使用gcc編譯器。首先,我們介紹如何在命令行方式下使用編譯器編譯簡單的C源代碼。然后,我們簡要介紹一下編譯器究竟作了那些工作,以及如何控制編譯過程。我們也簡要介紹了調試器的使用方法。

    GCC 中文手冊

    GCC中SIMD指令的應用方法
    X86架構上的多媒體應用開發,如果能夠使用SIMD指令進行優化, 性能將大大提高。目前,IA-32的SIMD指令包括MMX,SSE,SSE2等幾級。 在GCC的開發環境中,有幾種使用SIMD指令的方式……

    GCC常用命令描述
    unix下開發常用的編譯工具gcc,我對于gcc的了解知道的很少,
    一般用到的也就是gcc -o xx xx.cpp
    今天翻了一下gnu的gcc manual 花了點時間總結了一下,
    給大家分享一下!呵呵,希望對大家有幫助.
    這里介紹一下gcc的常用命令選項(可以參考gnu gcc manual).
    1. gcc 支持的語言.
    GCC 全稱是GNU Compiler Collection ,包含一些主要編譯器支持語言 C, C++, Objective-C, Java, Fortran, and Ada的編譯.
    2.gcc 命令選項
    當執行gcc的時候通常會經過四個處理過程,preprocessing, compilation, assembly and linking .可以通過加不同的選項來中止到某個過程.
    a.總的選項.
    -c -S -E -o file -pipe -pass-exit-codes
    -x language -v -### --help --target-help --version
    編譯器編譯文件要經過四個階段,如上所述.是按順序來進行的.
    編譯器根據輸入文件的后綴來決定進入哪個階段的處理過程:
    file.c c 文件要經過豫處理.
    file.i c源文件不必進行豫處理。
    file.ii c++源文件不必進行豫處理。
    file.h c/c++豫編譯頭文件.
    file.cc
    file.cp
    file.cxx
    file.cpp
    file.CPP
    file.c++
    file.C c++源文件要經過豫處理.
    file.hh
    file.H c++頭文件轉換為豫處理頭文件.
    file.s
    Assembler code.
    file.S
    Assembler code which must be preprocessed
    -x language =========選項是為了指定語言告訴gcc 文件是什么語言的,
    不必要缺省的后綴識別.
    languge 可以是:
    c c-header cpp-output
    c++ c++-header c++-cpp-output
    objective-c objective-c-header objc-cpp-output
    assembler assembler-with-cpp
    ada
    f77 f77-cpp-input ratfor
    java
    treelang
    -x none 用后綴識別,關閉語言識別.
    -c 只是編譯不連接,生成的都是目標文件. .c, .i, .s ==> .o
    -S 只是編譯不進行匯編,生成匯編代碼. .c, .i ==>.s
    -E 只是進行豫編譯,不做其他處理.
    -o file 把輸出文件輸出到file里.
    -v 打印出編譯器內部編譯的各個過程的命令行信息.和編譯器的版本.
    -### 同上,但是不真正執行命令.
    -pipe 編譯器編譯時各個階段的信息是保存到臨時文件的,如果你不想
    用臨時文件的話可以通過管道也行.這個命令選項就用上了.不過有些系統不支持.



    Gcc使用的內嵌匯編語法格式小教程
    本文對內嵌匯編語法,從基本語法、內嵌匯編的格式介紹、和擴展的內嵌匯編格式進行了詳細說明,需要說明的是gcc采用的是at&t的匯編格式。
    現狀篇
    GCC4.0的發展道路并不平坦。GCC 4.0發布不久就因為無法編譯Linux圖形界面KDE,而遭到參與開發KDE的程序員們的放棄。但是,一方面,GCC4.0編譯性能的提高,是有目共睹的。另一方面,開源軟件的一大優勢,就在于它能在開發者的不斷改進中變得完善。

    開源開發工具GCC將大翻修 性能有望全面提升
    改良GCC 并非易事,從GCC 3.3 版升級到3.4 版,在性能上雖然有進步,但卻造成回溯兼容性的問題。GCC4.0在這方面又做得如何呢?

    開源利器GCC 4.0性能改進工作火熱進行
    GCC 4.0發布不久就遇到問題,Linux圖形界面KDE無法用GCC編譯,參與開發KDE的程序員們隨即放棄了GCC 4.0。這些問題又如何解決呢?

    原文轉自:http://www.kjueaiud.com

    評論列表(網友評論僅供網友表達個人看法,并不表明本站同意其觀點或證實其描述)
    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>