亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? gcc-howto-3.html

?? Linux初學者最好的老師就是howto了。相當于函數man。
?? HTML
字號:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb2312">
 <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.7">
 <TITLE>The Linux GCC HOWTO中譯版V0.2: GCC的安裝與GCC的設定</TITLE>
 <LINK HREF="GCC-HOWTO-4.html" REL=next>
 <LINK HREF="GCC-HOWTO-2.html" REL=previous>
 <LINK HREF="GCC-HOWTO.html#toc3" REL=contents>
</HEAD>
<BODY>
<A HREF="GCC-HOWTO-4.html">Next</A>
<A HREF="GCC-HOWTO-2.html">Previous</A>
<A HREF="GCC-HOWTO.html#toc3">Contents</A>
<HR>
<H2><A NAME="s3">3. GCC的安裝與GCC的設定</A></H2>

<H2><A NAME="index.14"></A> <A NAME="index.13"></A> <A NAME="index.12"></A> <A NAME="ss3.1">3.1 GCC的版本</A>
   </H2>

<P>在shell的提示符號下鍵入<CODE>gcc -v</CODE>,螢幕上就會顯示出你目前正在使用的GCC的版本。同時這也是一個相當可靠的方法,可以確定你現在所用的是ELF或是a.out。在我的系統上,執行gcc -v的結果是:
<P>
<BLOCKQUOTE><CODE>
<PRE>
$ gcc -v
Reading specs from /usr/lib/gcc-lib/i486-box-linux/2.7.2/specs
gcc version 2.7.2
</PRE>
</CODE></BLOCKQUOTE>
<P>
<P>上面的訊息指出了幾件重要的事情:
<UL>
<LI> <CODE>i486</CODE> 這是指明你現在正在用的gcc是為了486的微處理器而寫的---你的電腦可能是386或是586。這3種微處理器的晶片所編譯而成的程式碼,彼此間是可以相容使用的。差別之處是486的程式碼在某些地方有加上padding的功能,所以可以在486上面跑得比較快。這對386的機器而言,執行程式的效能并不會有什麼不良的影響,只不過真的會讓程式碼變得稍稍的大了一些。
</LI>
<LI> <CODE>box</CODE> 這可以說一點也<EM>不</EM>重要;不過也可能另有所指(像是<CODE>slackware</CODE>或者是<CODE>debian</CODE>),或者根本什麼也不是(所以羅!完整的目錄名稱是<CODE>i486-linux</CODE>)。假如你是實務派的佼佼者,親自動手建立屬於自己的gcc,那麼你可以在建立的過程中設定這一項,以裝點門面。就像我做的一樣<CODE>:-)</CODE>。
</LI>
<LI> <CODE>linux</CODE> 其實這是指<CODE>linuxelf</CODE>或是<CODE>linuxaout</CODE>。這一項會令人引起不必要的困惑,究竟是指哪一種會根據你所用的版本而異。

<UL>
<LI> <CODE>linux</CODE> 意指ELF若版本序號是2.7.0.(或是更新的版本);否則的話,就是a.out的了。
</LI>
<LI><CODE>linuxaout</CODE> 意指a.out的格式。當<CODE>linux</CODE>的定義從a.out更換到ELF時,linuxaout就會順水推舟,搖身一變,成了一個目標物。因此,你不會看到任何版本新於2.7.0.的gcc有linuxaout的。

<A NAME="index.15"></A>  </LI>
<LI><CODE>linuxelf</CODE> 已經過時了。通常這是指2.6.3版的gcc,而且這個版本也可以用來產生ELF的可執行檔。要注意的是,gcc 2.6.3版在產生ELF程式碼時會有bugs,所以如果你目前用的恰好是這個版本,建議你趕快升級。
</LI>
</UL>
</LI>
<LI> <CODE>2.7.2</CODE> 版本的序號。</LI>
</UL>
<P>所以,總結起來,我有2.7.2版的gcc,可以產生ELF格式的程式碼。就這麼簡單,驚訝吧!eh?
<P>
<H2><A NAME="ss3.2">3.2 東東裝好後都到哪兒去了?</A>
</H2>

<P>如果安裝gcc時沒有仔細的看著螢幕,或者你是從一個完整的發行系統里把gcc單獨抓出來安裝的話,那麼也許你會想知道到底這些東東裝好後是住在整個檔案系統的那些地方。幾個重點如下:
<P>
<UL>
<LI><CODE>/usr/lib/gcc-lib/</CODE><EM>target</EM><CODE>/</CODE><EM>version</EM><CODE>/</CODE> (與子目錄)大部份的編譯器就是住在這個地方的。在這兒有可執行的程式,實際在做編譯的工作;另外,還有一些特定版本的程式庫與標頭檔等也會儲存在此。
</LI>
<LI> <CODE>/usr/bin/gcc</CODE> 指的是編譯器的驅動程式---也就是你實際在命令列(command line)上執行的程式。這個目錄可供各種版本的gcc使用,只要你用不同的編譯器目錄(如上所述)來安裝就可以了。要知道內定的版本是那一個,在shell提示符號下打<CODE>gcc -v</CODE>。要是想強迫執行某個版本,就換打<CODE>gcc -V </CODE><EM>version</EM>。例如:

<BLOCKQUOTE><CODE>
<PRE>
# gcc -v
Reading specs from /usr/lib/gcc-lib/i486-box-linux/2.7.2/specs
gcc version 2.7.2
# gcc -V 2.6.3 -v
Reading specs from /usr/lib/gcc-lib/i486-box-linux/2.6.3/specs
gcc driver version 2.7.2 executing gcc version 2.6.3
</PRE>
</CODE></BLOCKQUOTE>

</LI>
<LI> <CODE>/usr/</CODE><EM>target</EM><CODE>/(bin|lib|include)/</CODE>
如果你裝了數種的目標物件,例如a.out與elf,或是某一種的交叉編譯器(cross-compiler)等等,那些屬於非主流目標物件(non-native target(s))的程式庫,binutils(<CODE>as</CODE>、<CODE>ld</CODE>等等)工具與標頭檔等都可以在這兒找到。即使你只安裝了一種gcc,還是可以在這兒找到這些原本就是替它們準備的東東。如果不是在這兒,那麼就應該是在<CODE>/usr/(bin|lib|include)</CODE>了。
 </LI>
<LI> <CODE>/lib/</CODE>,<CODE>/usr/lib</CODE> 與其它的目錄等都是主流系統(native-system)的程式館目錄。許多的應用程式都會用到<CODE>/lib/cpp</CODE>,因此你也需要它---作法上,不是從<CODE>/usr/lib/gcc-lib/</CODE><EM>target</EM><CODE>/</CODE><EM>version</EM><CODE>/ </CODE>目錄里拷貝,就是弄個符號連結(symlink)指向那兒。
[譯者注:所謂的native,是指目前你的系統是以a.out或elf的格式為主,或者內定的gcc是哪一種版本等等。native的意思是‘本土的’、‘本國的’與‘天生的’……等等;當你拿到一片CD-ROM重頭至尾將Linux安裝完成,讓Linux出生,成為你個人特色濃厚的作業平臺後,如果再加裝一些不一樣的目標物件,自然就有‘本土’與‘外省’( 無關政治),‘本國’與‘外國’、‘天生’與‘人為’等等的區別,同時也含有內定(default)的意思在。假若再附加上你個人的價值觀判斷和喜好,我想用主流(native)與非主流(non-native)來翻譯應該還算恰當。]

<A NAME="index.16"></A>  </LI>
</UL>
<P>
<H2><A NAME="index.17"></A> <A NAME="ss3.3">3.3 標頭檔ㄋㄟ?標頭檔ㄋㄟ?</A>
 </H2>

<P>假如把你自行安裝在<CODE>/usr/local/include</CODE>目錄底下的標頭檔排除在外的話,Linux還有另外3種主要的標頭檔:
<P>
<UL>
<LI> <CODE>/usr/include/</CODE>與其子目錄底下的標頭檔,大部份都是由H.J.Lu發展的libc套件(libc binary package)所提供的。我會只說‘大部份’的原因,是因為你可能有其它來源的標頭檔(像是<CODE>curses</CODE>與<CODE>dbm</CODE>程式庫等等)擺在這兒;尤其是,如果你現在用的是最新的libc發行系統的話(新版本不像舊版那樣,已經不再支援curses或dbm了。),那東東之多是人人為之咋舌的!
[譯者注:libc binary package意指以二進位形式(machine code)儲存之套件,并非原始碼(text),若要以中文全稱譯出,則成‘libc二進位檔套件’,似有聱牙之嫌,故略去binary,以libc套件通稱。]

<A NAME="index.18"></A>  
<A NAME="index.19"></A>  
</LI>
<LI> 在核心原始碼的發行系統內(kernel source distribution) ,<CODE>/usr/include/linux</CODE> 與 <CODE>/usr/include/asm</CODE> (里頭有這些檔案:<CODE>&lt;linux/*.h&gt;</CODE> 與 <CODE>&lt;asm/*.h&gt;</CODE>)應該有符號連結(symbolic links)可以連結至目錄<CODE>linux/include/linux</CODE> 與 <CODE>linux/include/asm</CODE>。如果你有鴻鵠之志的話,安裝這些東東後,就不應該只是拿來編譯核心(kernel)而已。

把原始碼解壓縮(unpacking)後,可能你也會發現,需要在核心的目錄(kernel directory)底下做<CODE>make config</CODE>的動作。很多的檔案都會依賴<CODE>&lt;linux/autoconf.h&gt;</CODE>的幫忙,可是這個檔案卻有可能因版本不同而不存在。若干核心版本里,<CODE>asm</CODE>就只是它自己的一個符號連結,僅僅是在<CODE>make config</CODE>時才建立出來而已。
[譯者注:原文提及autoconf.h時是‘Many files depend on <CODE>&lt;linux/autoconf.h&gt;</CODE>,which otherwise may not exist,*’。此處之otherwise之詞性應為形容詞(adj),指‘另一情況’、‘另一種’、‘不同的’之意,將原文形容詞子句拆開來應為:(i) Many files depend on <CODE>&lt;linux/autoconf.h&gt;</CODE>.
(ii)<CODE>&lt;linux/autoconf.h&gt;</CODE> <EM>of other condition</EM> may not exist.
與下一句互相比對,此處應同指在不同版本之情況下。]

所以,當你在目錄<CODE>/usr/src/linux</CODE>底下,解開核心的程式碼時,就照著下面指示的做吧!

<BLOCKQUOTE><CODE>
<PRE>
$ cd /usr/src/linux
$ su
# make config
(回答接下來的問題。通?;卮鸬谜徽_并不重要,除非你打算繼續□造核心。)
# cd /usr/include
# ln -s ../src/linux/include/linux .
# ln -s ../src/linux/include/asm .
</PRE>
</CODE></BLOCKQUOTE>


<A NAME="index.20"></A>  
<A NAME="index.21"></A>  
<A NAME="index.22"></A>  
<A NAME="index.23"></A>  
<A NAME="index.24"></A>  
</LI>
<LI> 諸如<CODE>&lt;float.h&gt;</CODE>、<CODE>&lt;limits.h&gt;</CODE>、<CODE>&lt;varargs.h&gt;</CODE>、<CODE>&lt;stdarg.h&gt;</CODE> 與<CODE>&lt;stddef.h&gt;</CODE>之類的檔案,會隨著不同的編譯器版本而異,屬於你‘個人的’檔案,可以在 <CODE>/usr/lib/gcc-lib/i486-box-linux/2.7.2/include/</CODE>與其它相類似(相同)的目錄名稱的地方找到。

11/11/97譯
5/14/98修正
</LI>
</UL>
<P>
<H2><A NAME="ss3.4">3.4 建立交叉編譯器(Building cross compilers)</A>
</H2>

<H3>將Linux當作標的作業平臺(target platform)</H3>

<P> 假設你已經拿到gcc的原始碼,通常你只要依循INSTALL檔的指示便可完成一切的設定。 make後面再接<CODE>configure --target=i486-linux --host=XXX</CODE> on platform <CODE>XXX</CODE>,就能幫你變把戲了。要注意的是,你會需要Linux還有核心的標頭檔;同時也需要建立交叉組譯器(cross assembler)與交叉連結器(cross linker),來源是
<A HREF="ftp://tsx-11.mit.edu/pub/linux/packages/GCC/">ftp://tsx-11.mit.edu/pub/linux/packages/GCC/</A>。
<P>
<H3>Linux當成原始作業平臺(source platform)而MSDOS作為標的作業平臺</H3>

<P> Ugh。很明顯的,這個大概需要用到套件“emx”或是延伸套件“go”。請自行去
<A HREF="ftp://sunsite.unc.edu/pub/Linux/devel/msdos">ftp://sunsite.unc.edu/pub/Linux/devel/msdos</A>看看。我并沒有測試過這些個東西,所以沒有辦法保證什麼。
<P>
<P>
<HR>
<A HREF="GCC-HOWTO-4.html">Next</A>
<A HREF="GCC-HOWTO-2.html">Previous</A>
<A HREF="GCC-HOWTO.html#toc3">Contents</A>
</BODY>
</HTML>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91免费国产在线| 高清不卡在线观看| 亚洲一区在线看| 亚洲天堂精品视频| 一区二区国产视频| 亚洲国产精品天堂| 日韩高清在线一区| 美女任你摸久久| 激情国产一区二区| 国产乱码精品一区二区三区忘忧草| 韩国欧美国产一区| 国产iv一区二区三区| 99综合电影在线视频| 日本精品裸体写真集在线观看 | 国内精品国产成人国产三级粉色| 理论电影国产精品| 国产一区不卡在线| 成人高清在线视频| 欧美在线高清视频| 欧美成人一区二区| 国产精品嫩草99a| 亚洲一二三四区| 麻豆久久久久久久| 成人av网站免费| 欧美日韩视频一区二区| 日韩欧美一级二级三级| 国产精品乱码一区二区三区软件 | 5月丁香婷婷综合| 久久夜色精品国产噜噜av| 国产精品每日更新| 亚洲国产精品影院| 国产不卡视频一区| 制服丝袜成人动漫| 国产精品国产三级国产有无不卡| 午夜激情一区二区| 国v精品久久久网| 欧美日韩精品三区| 国产精品国产三级国产普通话蜜臀| 亚洲国产成人porn| 成人h精品动漫一区二区三区| 欧美福利电影网| 中文字幕+乱码+中文字幕一区| 亚洲国产日韩精品| 不卡av在线网| 精品伦理精品一区| 亚洲一卡二卡三卡四卡五卡| 国产在线精品一区二区三区不卡| 在线观看日韩电影| 中文字幕精品一区二区三区精品| 日韩不卡一二三区| 色播五月激情综合网| 久久久久久久网| 日韩国产成人精品| 欧美日免费三级在线| 国产精品久久久久桃色tv| 久久91精品久久久久久秒播| 欧美视频精品在线| 亚洲在线视频网站| 色噜噜狠狠成人网p站| 国产精品人妖ts系列视频| 久久国产精品色婷婷| 欧美精品tushy高清| 午夜一区二区三区视频| 色综合久久久久综合99| 亚洲视频一区在线| 9i在线看片成人免费| 国产精品久久久久久久久免费桃花 | 综合欧美一区二区三区| 国产成人在线免费观看| 国产视频一区在线播放| 久久福利视频一区二区| 精品免费视频.| 久久精品理论片| 欧美一区二区三区在线观看| 无吗不卡中文字幕| 欧美一区二区免费视频| 天天色综合成人网| 91精品国产综合久久精品图片 | 久久精子c满五个校花| 精品在线你懂的| 精品盗摄一区二区三区| 精品一区二区在线观看| 久久影院午夜片一区| 国产精品白丝jk白祙喷水网站| 久久影音资源网| 成人国产精品免费观看| 成人免费在线播放视频| 欧美在线看片a免费观看| 亚洲成人av中文| 欧美日韩一区二区欧美激情| 日韩和欧美的一区| 欧美大片一区二区| 国产成人午夜高潮毛片| 亚洲欧美在线高清| 欧美精品第一页| 国产美女娇喘av呻吟久久| 国产精品久久久99| 欧美中文一区二区三区| 久久精品久久精品| 国产精品天干天干在线综合| 色悠悠亚洲一区二区| 免费观看日韩电影| 国产精品久久久久久一区二区三区| 91黄色小视频| 激情另类小说区图片区视频区| 中文字幕一区二区三区不卡在线| 欧美日韩久久久一区| 国产又黄又大久久| 亚洲一区二区三区在线看| 欧美mv日韩mv亚洲| 在线观看不卡一区| 国产一区二区影院| 亚洲午夜免费电影| 国产女人aaa级久久久级| 欧美精品久久一区| 成人黄色免费短视频| 爽好久久久欧美精品| 国产精品久久久久久久岛一牛影视 | 久久午夜羞羞影院免费观看| 色综合久久中文字幕| 国产精品综合在线视频| 亚洲国产精品久久久久婷婷884| 欧美电影免费提供在线观看| 在线亚洲欧美专区二区| 岛国一区二区三区| 国精品**一区二区三区在线蜜桃| 一区二区免费看| 国产精品久久久久久久久免费相片 | 久久99国产精品尤物| 亚洲国产综合视频在线观看| 欧美国产一区二区在线观看| 91 com成人网| 欧美专区在线观看一区| 成人av电影在线网| 国产精品影音先锋| 国内成+人亚洲+欧美+综合在线| 亚洲综合成人在线视频| 日韩美女视频一区二区| 久久精品人人做人人综合| 日韩欧美www| 欧美一区二区在线播放| 精品视频1区2区3区| 在线观看日韩电影| 色久综合一二码| 色哟哟在线观看一区二区三区| av在线不卡网| 成人av在线观| 91麻豆国产香蕉久久精品| 成人av在线资源网站| 不卡一区二区三区四区| 99re这里都是精品| 91美女片黄在线| 91视频.com| 欧美四级电影网| 欧美久久一区二区| 7777精品伊人久久久大香线蕉的| 欧美日韩精品一区二区三区蜜桃| 欧美美女一区二区三区| 制服丝袜中文字幕亚洲| 日韩欧美亚洲另类制服综合在线 | 91丨porny丨中文| 色综合天天综合色综合av| 99麻豆久久久国产精品免费优播| 成人美女在线观看| 在线精品亚洲一区二区不卡| 欧美日韩专区在线| 日韩一级大片在线| 久久亚洲私人国产精品va媚药| 国产丝袜欧美中文另类| |精品福利一区二区三区| 亚洲午夜电影在线| 麻豆国产精品一区二区三区| 国产高清在线精品| 色狠狠av一区二区三区| 日韩一区二区免费视频| 久久精品一区蜜桃臀影院| 国产精品久久夜| 婷婷丁香久久五月婷婷| 国产精品白丝jk黑袜喷水| 日本乱人伦一区| 久久久久国产免费免费| 亚洲综合图片区| 久久国产人妖系列| 91色.com| 久久亚洲一级片| 夜夜嗨av一区二区三区中文字幕 | 92精品国产成人观看免费| 欧美日韩国产天堂| 国产女人18毛片水真多成人如厕 | 午夜影视日本亚洲欧洲精品| 国产一区二区毛片| 在线观看一区不卡| 久久久久久久久久久久久久久99| 亚洲私人影院在线观看| 老司机午夜精品99久久| 91在线视频官网| 久久精品欧美一区二区三区不卡 | 色综合天天天天做夜夜夜夜做| 欧美喷潮久久久xxxxx| 国产精品视频在线看|