gcc編譯器:SCO OpenServer下編譯及使用GCC 3.0

來源:互聯網
上載者:User

1.說明本文檔適用於在SCO 5.0.6下編譯及使用gcc-3.0及gcc-3.0.x.同樣的方法也可用於編譯gcc-2.95.x、gcc-3.2.x、gcc-3.3.本文以gcc-3.0為例說明gcc的編譯過程和使用中的部分注意點。

2.源碼的gcc-3.0的源碼可以從gcc的官方網站(gcc.gnu.org)及鏡像網站。

後將源碼包在SCO下解壓、解包。本文中假設解包後的目錄為/usr/test/gcc-3.0.

3.編譯前準備3.1. 作業系統補丁在SCO OpenServer 5.0.6下編譯gcc-3.0不需要打作業系統補丁。如打了OSS646C後編譯過程有可能出錯。

3.2.安裝GNU Make使用SCO開發環境內建的make編譯gcc時會因為對Makefile中的某些文法無法解析而導致編譯失敗,因此需要以GNU Make來進行編譯。

首先,從GNU官方網站下載GNU Make的源碼(目前的最高版本是3.80),在SCO下編譯產生make執行碼,然後用此執行碼替換/bin/make.

4.配置為了避免由於誤操作破壞gcc的源碼,一般將gcc的配置和編譯在另外的目錄下進行。

在/usr/test下建立gcctmp目錄。進入gcctmp目錄,執行以下命令:……/gcc-3.0/configure ——prefix=/usr/local/gcc-3.0 prefix所表示的是gcc的安裝目錄。在不使用此參數時,預設的安裝目錄是/usr/local.如果可能安裝多個版本的gcc,最好將不同版本的gcc安裝至不同的目錄下。

configure還有許多其他的編譯選項,在配置前可以仔細閱讀一下INSTALL目錄下的文檔,根據需要開啟或關閉某些選項。

5.編譯在gcctmp下執行make bootstrap由於gcc系統比較龐大,編譯需要較長的時間。

6.安裝在成功完成gcc的編譯後,用su命令切換至root使用者,執行make install將gcc安裝至/usr/local/gcc-3.0目錄下。

7.安裝後的驗證將gcc的安裝路徑加入執行路徑:PATH=/usr/local/gcc-3.0/binPATH; export PATH執行gcc -v,提示以下資訊:Reading specs from /usr/local/gcc-3.0/lib/gcc-lib/i386-pc-sco3.2v5.0.6/3.0/specs Configured with: ……/gcc-3.0/configure ——prefix=/usr/local/gcc-3.0 Thread model: single gcc version 3.0就說明gcc已經編譯、安裝完成,可以用來進行程式的開發了。恭喜你!

8.-belf和-bcoff的相容在SCO平台下編譯的程式有時需要使用elf或coff格式,這一功能是通過-belf和-bcoff編譯選項來控制的。

至遲從gcc-2.95.x起,在gcc官方文檔中都會有這樣一段關於SCO平台的聲明(詳見Host/Target specific installation notes for GCC):Unlike earlier versions of GCC, the ability to generate COFF with this target is no longer provided.因此,不要指望gcc能在SCO下產生coff格式的二進位碼。更糟的是gcc在SCO OpenServer下運行時如果加上-belf或-bcoff選項會報以下的錯誤:gcc: installation problem, cannot exec `cc1': No such file or directory並由此而導致一些軟體包的配置和編譯出錯。

網上有許多關於這方面的提問,但很少有人回答。其實解決的辦法很簡單:1. 以root使用者登入,進入/usr/local/gcc-3.0/lib/gcc-lib 2. ln -s i386-pc-sco3.2v5.0.6 elf ln -s i386-pc-sco3.2v5.0.6 coff完成上面的操作後,就可以正常使用-b選項了。

當然,我們的目的不是為了產生elf格式或coff格式的二進位碼(在使用-belf和-bcoff時產生的程式碼完全相同),而是在使用了-b選項時不至於出錯。

此方法也可用於gcc-2.95.x以及其它版本。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.