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

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

?? glibc2-howto-5.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>Glibc 2 HOWTO 中文版: 安裝成主要函式庫</TITLE>
 <LINK HREF="Glibc2-HOWTO-6.html" REL=next>
 <LINK HREF="Glibc2-HOWTO-4.html" REL=previous>
 <LINK HREF="Glibc2-HOWTO.html#toc5" REL=contents>
</HEAD>
<BODY>
<A HREF="Glibc2-HOWTO-6.html">Next</A>
<A HREF="Glibc2-HOWTO-4.html">Previous</A>
<A HREF="Glibc2-HOWTO.html#toc5">Contents</A>
<HR>
<H2><A NAME="primary-install"></A> <A NAME="s5">5. 安裝成主要函式庫</A></H2>

<P>
<P>這一節的內容是關於將 glibc2 安裝成你的主要 C 函式庫。
任何你編譯的新程式都將會連結到這一個函式庫,
除非你用了特殊的編譯選項來連結到其它的版本。
<P>假如你是用 RedHat 或 Debian 并且已下載相關的 rpm 或 deb 檔,
請參閱 RedHat 或 Debian 的安裝說明,你可以直接跳過這一節。
<P>
<H2><A NAME="compiling"></A> <A NAME="ss5.1">5.1 由原始碼編譯函式庫</A>
</H2>

<P>
<P>這一節解釋如何由原始碼編譯 glibc 2 與附加套件。
如果你想要改變最佳化與組態選項或使用額外的套件,那你就必須編譯函式庫。
<P>
<H3>需求</H3>

<P>
<P>
<UL>
<LI>約 150 MB 的磁碟空間</LI>
<LI>GNU make 3.75</LI>
<LI>gcc &gt;= 2.7.2 (最好是 2.7.2.1)</LI>
<LI>binutils 2.8.1 (假如是 alpha 你需要 snapshot)</LI>
<LI>bash 2.0</LI>
<LI>autoconf 2.12 (假如你更動了 configure.in)</LI>
<LI>texinfo 3.11</LI>
</UL>
<P>在一安裝有 64MB 記憶體的 i586@133 機器上,
編譯完整的函式庫與附加套件大約需要三個小時。
而在 i686@200 的機器上則約需要一個半小時。
<P>
<H3>解開原始碼</H3>

<P>
<P>你需要從 archive 中解出原始碼才能編譯它,
最好的方式是:
<BLOCKQUOTE><CODE>
<PRE>
 tar xzf glibc-2.0.6.tar.gz
 cd glibc-2.0.6
 tar xzf ../glibc-linuxthreads-2.0.6.tar.gz
 tar xzf ../glibc-crypt-2.0.6.tar.gz
 tar xzf ../glibc-localedata-2.0.6.tar.gz
 
</PRE>
</CODE></BLOCKQUOTE>

這將會把 linuxthreads、crypt 與 localedata 等目錄放到 glibc-2.0.6 目錄下,
如此 configure 才能找到這些附加套件。
<P>
<H3>設定組態</H3>

<P>
<P>在 <CODE>glibc-2.0.6</CODE> 的目錄底下,建立一個新的目錄 compile,
并且 cd 到 compile 底下,所也的工作都會在這個目錄中完成,
這會簡化後續的清除工作。
(發展者似乎并未讓 'make clean' 作得很好)
<BLOCKQUOTE><CODE>
<PRE>
 mkdir compile
 cd compile
 
</PRE>
</CODE></BLOCKQUOTE>
<P>執行 <CODE>../configure</CODE>。
要使用附加套件你必需用 --enable-add-ons 來指定,
例如 --enable-add-ons=linuxthreads,crypt,localedata。
也許你也會想要指定安裝的目錄,要符合 linux 標準架構,
指定為 --prefix=/usr。
(當在 linux 系統上 prefix 被設為 <CODE>/usr</CODE>,
configure 知道要調整其它的路徑,
好將 libc.so 以及其它重要的函式庫放到 <CODE>/lib</CODE>)
完整的 configure 命令如下:
<BLOCKQUOTE><CODE>
<PRE>
 ../configure --enable-add-ons=linuxthreads,crypt,localedata --prefix=/usr
</PRE>
</CODE></BLOCKQUOTE>
<P>
<H3>編譯</H3>

<P>
<P>要編譯與驗證,
執行:
<BLOCKQUOTE><CODE>
<PRE>
 make
 make check
 
</PRE>
</CODE></BLOCKQUOTE>
<P>
<H2><A NAME="ss5.2">5.2 準備安裝</A>
</H2>

<P> 
<P>無論是由原始碼編譯或是預先編譯好的版本,你現在必需移動某些檔案來迎接新的函式庫。
任何新編譯的程式會被連結到 glibc,但是舊有靜態連結的程式仍然倚靠著 libc 5,
所以你不能只是覆蓋掉舊有的版本。
<P>
<OL>
<LI>建立一個新的目錄來放置舊檔案:
<BLOCKQUOTE><CODE>
<PRE>
 mkdir -p /usr/i486-linuxlibc5/lib
 
</PRE>
</CODE></BLOCKQUOTE>

</LI>
<LI>舊的標頭檔必需從 <CODE>/usr/include</CODE> 移開:
<BLOCKQUOTE><CODE>
<PRE>
 mv /usr/include /usr/i486-linuxlibc5/include
 
</PRE>
</CODE></BLOCKQUOTE>

</LI>
<LI>建立一個新的 include 目錄,并且設定到其它 include 目錄的連結:
<BLOCKQUOTE><CODE>
<PRE>
 mkdir /usr/include
 ln -s /usr/src/linux/include/linux /usr/include/linux
 ln -s /usr/src/linux/include/asm /usr/include/asm
 ln -s /usr/X11R6/include/X11 /usr/include/X11
 ln -s /usr/lib/g++-include /usr/include/g++
 
</PRE>
</CODE></BLOCKQUOTE>

這些連結須要視你的系統而稍作調整。
最少在 Slackware 中,g++ 標頭檔案在 <CODE>/usr/local/g++-include</CODE>,
而 Debian 卻放在 <CODE>/usr/include/g++</CODE>,
并且將 <CODE>/usr/lib/g++-include</CODE> 連結到 <CODE>/usr/include/g++</CODE>。
在後者的情形,你也許會想要將原始的 g++ include 目錄移回到
<CODE>/usr/include</CODE>。
</LI>
<LI>回存所有額外的標頭檔與連結。
某些非標準的函式庫會將檔案放至 <CODE>/usr/include</CODE>,
或是在 <CODE>/usr/include</CODE> 放置一連結到它們的 include 目錄下。
這些檔案與連結必須回存,如此才可以正確的使用這些額外的函式庫。
</LI>
<LI>將你的新函式庫路徑
(例如 <CODE>/usr/i486-linuxlibc5/lib</CODE>)
加入到 <CODE>/etc/ld.so.conf</CODE> 的<EM>頂端</EM>。
你最好要有 ld.so 1.8.8 或是更新的版本,
以避免在安裝完 glibc 之後出現一些奇怪的訊息。
</LI>
<LI>搬移或復制所有的舊函式庫到新的目錄。
<BLOCKQUOTE><CODE>
<PRE>
 mv /usr/lib/libbsd.a /usr/i486-linuxlibc5/lib
 mv /usr/lib/libc.a /usr/i486-linuxlibc5/lib
 mv /usr/lib/libgmon.a /usr/i486-linuxlibc5/lib
 mv /usr/lib/libm.a /usr/i486-linuxlibc5/lib
 mv /usr/lib/libmcheck.a /usr/i486-linuxlibc5/lib
 mv /usr/lib/libc.so /usr/i486-linuxlibc5/lib
 mv /usr/lib/libm.so /usr/i486-linuxlibc5/lib
 cp /lib/libm.so.5.* /usr/i486-linuxlibc5/lib
 cp /lib/libc.so.5.* /usr/i486-linuxlibc5/lib
 
</PRE>
</CODE></BLOCKQUOTE>

假如你的 <CODE>/usr</CODE> 與 <CODE>/</CODE> 是在不同的 partition 上,
那 <CODE>libm.so.5</CODE> 與 <CODE>libc.so.5</CODE> 應該用復制的非搬移,
因為一些用來啟動 linux 的程式會需要這兩個函式庫,
因此必須要位在 root partition。
</LI>
<LI>將 <CODE>/usr/lib/*.o</CODE> 移到新的目錄下。
<BLOCKQUOTE><CODE>
<PRE>
 mv /usr/lib/crt1.o /usr/i486-linuxlibc5/lib
 mv /usr/lib/crti.o /usr/i486-linuxlibc5/lib
 mv /usr/lib/crtn.o /usr/i486-linuxlibc5/lib
 mv /usr/lib/gcrt1.o /usr/i486-linuxlibc5/lib
 
</PRE>
</CODE></BLOCKQUOTE>

</LI>
<LI>在你的函式庫移動後,
更新 library cache。
<BLOCKQUOTE><CODE>
<PRE>
 ldconfig -v
 
</PRE>
</CODE></BLOCKQUOTE>
</LI>
</OL>
<P>
<H2><A NAME="ss5.3">5.3 由預先編譯好的套件安裝</A>
</H2>

<P>
<P>如果你是由一已預先編譯好的 glibc 安裝,
你必須:
<BLOCKQUOTE><CODE>
<PRE>
 cd /
 gzip -dc glibc-2.0.bin.i386.tar.gz | tar tvvf -
 gzip -dc glibc-crypt-2.0.bin.i386.tar.gz | tar tvvf -
 ldconfig -v
 
</PRE>
</CODE></BLOCKQUOTE>

如果你用的是不同的系統架構或是版本,請置換適當的檔名。
<P>
<H2><A NAME="ss5.4">5.4 由原始碼安裝</A>
</H2>

<P>
<P>要由原始碼安裝,
執行:
<BLOCKQUOTE><CODE>
<PRE>
 make install
 ldconfig -v
 
</PRE>
</CODE></BLOCKQUOTE>
<P>
<H2><A NAME="ss5.5">5.5 更新 gcc specs</A>
</H2>

<P>
<P>安裝的最後一步
(不管你是由預先編譯好的套件或是由原始碼安裝)
是更新 gcc 的 <CODE>spec</CODE> 檔,
讓你可以正確的連結你的程式。
要知道 gcc 所用的是那一個 spec 檔,
如下輸入:
<BLOCKQUOTE><CODE>
<PRE>
 % gcc -v
 reading specs from /usr/lib/gcc-lib/i486-unknown-linux/2.7.2.2/specs
 gcc version 2.7.2.2
 
</PRE>
</CODE></BLOCKQUOTE>
<P>在這里,系統是 i486-unknown-linux,
而版本則是 2.7.2.2。
你必須將 <CODE>/usr/lib/gcc-lib/&lt;系統&gt;</CODE> 復制到舊的系統目錄下:
<BLOCKQUOTE><CODE>
<PRE>
 cd /usr/lib/gcc-lib/
 cp -r i486-unknown-linux i486-linuxlibc5
 
</PRE>
</CODE></BLOCKQUOTE>
<P>到原先的目錄與版本目錄下:
<BLOCKQUOTE><CODE>
<PRE>
 cd /usr/lib/gcc-lib/i486-unknown-linux/2.7.2.2
 
</PRE>
</CODE></BLOCKQUOTE>

并修改在同一目錄下的 <CODE>specs</CODE>。
將這檔案中的 <CODE>/lib/ld-linux.so.1</CODE> 改成 <CODE>/lib/ld-linux.so.2</CODE>,
并且要將所有的 <CODE>%{...:-lgmon}</CODE> 表示式刪除,
因為 glibc 不使用 gmon 函式庫來做 profiling。
你可以在 
<A HREF="Glibc2-HOWTO-9.html#specs">Specs 檔□例</A> 找到一份 specs 檔的□例。
<P>
<H2><A NAME="ss5.6">5.6 測試你的安裝</A>
</H2>

<P>
<P>要測試安裝是否正確,
請建立 glibc.c 如下:
<BLOCKQUOTE><CODE>
<PRE>
 #include &lt;stdio.h&gt;

 main()
 {
     printf("hello world!\n");
 }
 
</PRE>
</CODE></BLOCKQUOTE>

并且 compile 這個程式:
<BLOCKQUOTE><CODE>
<PRE>
 % gcc glibc.c -o glibc
 
</PRE>
</CODE></BLOCKQUOTE>

使用 ldd 來查證這個程式是連結到 glibc2 而非你的舊 libc:
<BLOCKQUOTE><CODE>
<PRE>
 % ldd glibc
 libc.so.6 => /lib/libc.so.6 (0x4000e000)
 /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
 
</PRE>
</CODE></BLOCKQUOTE>

假如這個程式可以通過 compile,并且在執行後產生 &quot;hello world!&quot;
的輸出,那麼表示已經安裝成功。
<P>
<P>
<HR>
<A HREF="Glibc2-HOWTO-6.html">Next</A>
<A HREF="Glibc2-HOWTO-4.html">Previous</A>
<A HREF="Glibc2-HOWTO.html#toc5">Contents</A>
</BODY>
</HTML>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一区二区三区在线视频| 色香蕉久久蜜桃| 久久国产人妖系列| 视频一区二区不卡| 三级亚洲高清视频| 国模一区二区三区白浆| 国产在线播精品第三| 国产精品99精品久久免费| 国产在线国偷精品产拍免费yy| 国产在线观看免费一区| 成人黄色av电影| 91啪九色porn原创视频在线观看| 成人av集中营| 欧美日韩一区二区三区四区 | 精品国产污污免费网站入口| 91麻豆精品国产91久久久资源速度| 91精品中文字幕一区二区三区| 欧美日本视频在线| 久久久久国色av免费看影院| 国产欧美一区二区三区在线看蜜臀 | 91丝袜美女网| 欧美日韩国产高清一区二区三区| 欧美精品自拍偷拍| 久久精品夜夜夜夜久久| 1000部国产精品成人观看| 亚洲成av人影院在线观看网| 国产在线观看免费一区| 99久久777色| 欧美一级久久久| 国产精品乱码一区二区三区软件| 亚洲午夜久久久久久久久电影院 | 亚洲色图清纯唯美| 日本欧美韩国一区三区| 国产99一区视频免费| 色综合色综合色综合色综合色综合| 91麻豆精品91久久久久同性| 久久精品在这里| 亚洲444eee在线观看| 国产成人精品综合在线观看 | 国产精品不卡在线| 免费欧美高清视频| 91美女福利视频| 精品99一区二区三区| 伊人色综合久久天天人手人婷| 免费成人美女在线观看| av电影在线观看一区| 日韩精品一区二区三区三区免费 | 国产成人精品三级麻豆| 欧美日韩欧美一区二区| 亚洲欧洲美洲综合色网| 国产尤物一区二区在线| 欧美久久久久久蜜桃| 91精品黄色片免费大全| 欧美成人乱码一区二区三区| 亚洲黄色av一区| 免费在线观看日韩欧美| 国产毛片精品国产一区二区三区| 欧美日韩视频在线第一区 | 中文字幕精品一区二区三区精品| av在线一区二区| 五月婷婷综合网| 久久九九99视频| 欧美视频你懂的| 韩国女主播成人在线| 亚洲欧美一区二区久久| 91精品国产综合久久福利 | 欧美亚洲国产怡红院影院| 久久国内精品自在自线400部| 欧美国产日韩a欧美在线观看| 色噜噜狠狠成人中文综合| 日韩电影在线免费| 日韩理论片在线| 日韩美女一区二区三区| 日本电影亚洲天堂一区| 国内偷窥港台综合视频在线播放| 亚洲免费观看高清| 精品对白一区国产伦| 欧美日韩国产三级| k8久久久一区二区三区| 久草精品在线观看| 亚洲精品va在线观看| 国产欧美日韩久久| 欧美男男青年gay1069videost| 国产成人欧美日韩在线电影| 免费观看91视频大全| 亚洲黄色性网站| 国产夜色精品一区二区av| 欧美日韩免费不卡视频一区二区三区| 国产91精品精华液一区二区三区| 日韩电影在线一区| 亚洲图片自拍偷拍| 亚洲免费色视频| 亚洲欧洲国产专区| 久久久99精品免费观看| 精品国产乱码久久久久久夜甘婷婷 | 亚洲人成影院在线观看| 久久久91精品国产一区二区精品| 欧美一卡二卡三卡| 欧美日韩一区成人| 91麻豆swag| 99久久精品国产观看| 国产成人午夜视频| 国产乱人伦偷精品视频不卡| 裸体歌舞表演一区二区| 图片区小说区国产精品视频| 亚洲三级久久久| 国产精品久久久久久久蜜臀| 久久久久99精品一区| 久久无码av三级| 精品免费99久久| 精品国产乱码久久久久久免费 | 日韩视频在线一区二区| 欧美一区二区观看视频| 欧美一区二区三区人| 91精品国产综合久久久久久漫画| 欧美色综合影院| 欧美日韩成人一区| 欧美精品色一区二区三区| 6080国产精品一区二区| 日韩一级精品视频在线观看| 日韩精品一区国产麻豆| 欧美第一区第二区| 国产亚洲精品久| 国产精品久久久久久久第一福利| ...xxx性欧美| 亚洲一本大道在线| 视频在线在亚洲| 韩国av一区二区| 99re热视频这里只精品| 欧美亚洲愉拍一区二区| 91精品国产综合久久精品app| 欧美一级电影网站| 2023国产精华国产精品| 中文字幕亚洲综合久久菠萝蜜| 亚洲免费观看视频| 日韩av不卡一区二区| 国产综合色在线视频区| 91丝袜美腿高跟国产极品老师 | 中文字幕免费在线观看视频一区| 中文字幕一区二区三区在线观看| 亚洲色图欧美激情| 免费观看在线色综合| 成人精品国产福利| 欧美亚洲图片小说| 久久久久久免费网| 亚洲精品成人悠悠色影视| 免费精品99久久国产综合精品| 成人性生交大片免费看视频在线| 色菇凉天天综合网| 久久综合久久综合久久| 亚洲精品伦理在线| 加勒比av一区二区| 色综合久久九月婷婷色综合| 欧美一区二区免费观在线| 国产精品天干天干在观线| 肉色丝袜一区二区| 成+人+亚洲+综合天堂| 91麻豆精品国产91| 亚洲人成网站色在线观看| 麻豆精品视频在线观看| 91麻豆国产福利精品| 精品成人一区二区三区| 亚洲国产另类精品专区| 成人黄色片在线观看| 日韩欧美国产三级电影视频| 一区二区三区蜜桃网| 国产久卡久卡久卡久卡视频精品| 色婷婷久久99综合精品jk白丝| 欧美成人猛片aaaaaaa| 亚洲电影视频在线| 9久草视频在线视频精品| 欧美精品一区二区三区视频| 五月激情综合色| 91久久精品一区二区三| 中文字幕不卡在线观看| 九九九精品视频| 538在线一区二区精品国产| 亚洲少妇最新在线视频| 成人一区二区三区在线观看| 日韩精品一区二区三区视频| 婷婷综合久久一区二区三区| 在线精品视频一区二区三四| 亚洲欧美一区二区在线观看| 国产精品1区2区3区在线观看| 91精品国产综合久久久蜜臀图片 | 91精品久久久久久久久99蜜臂| 亚洲综合999| 欧美影片第一页| 夜色激情一区二区| 在线区一区二视频| 一区二区免费在线| 日本久久一区二区三区| 亚洲女爱视频在线| 色综合天天综合网天天看片| 亚洲三级电影网站| 欧美自拍丝袜亚洲| 亚洲成人久久影院| 91精品国产综合久久婷婷香蕉| 青草av.久久免费一区| 日韩美一区二区三区|