?? glibc2-howto.txt
字號(hào):
Glibc 2 HOWTO 中文版 原作 Eric Green, ejg3@cornell.edu譯者 Allex Juang, allex@ms2.accmail.com 1.5 版, 1998年 2月 8日 _________________________________________________________________ 這份 glibc 2 HOWTO 內(nèi)容包括在 Linux 系統(tǒng)上安裝與使用第二版 GNU C Library。 _________________________________________________________________ 1. 簡(jiǎn)介 * 1.1 關(guān)於 glibc 2 * 1.2 關(guān)於這份文件 * 1.3 這份文件的最新改變 2. 選擇你的安裝方式3. 取得函式庫(kù)4. 安裝成測(cè)試用的函式庫(kù) * 4.1 編譯與安裝 * 4.2 更新 dynamic loader * 4.3 設(shè)定 gcc * 4.4 更新標(biāo)頭檔連結(jié) * 4.5 測(cè)試你的安裝 5. 安裝成主要函式庫(kù) * 5.1 由原始碼編譯函式庫(kù) * 5.2 準(zhǔn)備安裝 * 5.3 由預(yù)先編譯好的套件安裝 * 5.4 由原始碼安裝 * 5.5 更新 gcc specs * 5.6 測(cè)試你的安裝 6. 使用非主要的 C 函式庫(kù)編譯程式 * 6.1 一個(gè)關(guān)於使用非主要 C 函式庫(kù)的警告 * 6.2 用測(cè)試安裝的 glibc 編譯程式 * 6.3 當(dāng) glibc 是主要函式庫(kù)時(shí)用 libc 5 編譯程式 7. 編譯 C++ 程式 * 7.1 用測(cè)試的 C 函式庫(kù)安裝 libg++ * 7.2 在主要 glibc 下安裝 libg++ * 7.3 使用非主要的 C 函式庫(kù)來(lái)編譯 C++ 程式 8. 報(bào)告臭□9. Specs 檔□例10. 雜項(xiàng) * 10.1 進(jìn)一步的資料 * 10.2 貢獻(xiàn)者列表 * 10.3 回饋 * 10.4 Copyright. _________________________________________________________________ 1. 簡(jiǎn)介1.1 關(guān)於 glibc 2 Glibc 2 是最新版的 GNU C 函式庫(kù)。 它目前不需修改就可以在 GNU Hurd ,Linux i386, m68k, 以及 alpha 系統(tǒng)上執(zhí)行, 而 2.1 版中將加入對(duì) Linux PowerPC, MIPS, Sparc, Sparc 64 與 Arm 等系統(tǒng)的支援。未來(lái)將加入 對(duì)其它架構(gòu)及作業(yè)系統(tǒng)的支援。 在 Linux 上,glibc 2 是主要版本為 6 的 libc,也就是 Linux libc 5 的後繼 者。 Linux libc 的發(fā)展人員想以此逐漸取代 libc 5。 就 2.0.6 來(lái)看,glibc 已具有成熟產(chǎn)品的品質(zhì)。 Glibc 2.1 版 (在不久的將來(lái)) 將加入更多的功能, 并移植到更多系統(tǒng)上,足夠當(dāng)作主流使用。 Glibc 2 有三個(gè)選擇性的附加套件: Crypt UFC-crypt 加密套件。 由於出口限制所以要分離出來(lái)。 LinuxThreads Posix 1003.1c "pthread" 介面的實(shí)作。 Locale data 包含制造使用 glibc 的 internationalization 功能所需 locale 資料 檔案的資料。 強(qiáng)烈建議安裝 Cryt 與 LinuxThreads 這兩個(gè)附加套件, 如果不安裝的話(huà),有可 能會(huì)與其它系統(tǒng)上的函式庫(kù)造成不相容的情形。 (假如你不想使用這兩個(gè)附加套 件的話(huà), 那你必須在執(zhí)行 configure 時(shí)加上 --disable-sanity-checks 的選 項(xiàng)) 1.2 關(guān)於這份文件 這份文件涵蓋如何在 Linux 系統(tǒng)上安裝 glib 2, 適用對(duì)象是那些在 intel-based 機(jī)器上使用 libc 5 的使用者。 但是對(duì)於其它系統(tǒng)以及其它不同函 式庫(kù) (如 glibc 1) 的使用者, 只要將這份文件中出現(xiàn)的檔名以及系統(tǒng)架構(gòu)名稱(chēng) 作適當(dāng)?shù)拇鷵Q, 應(yīng)該也可得到些幫助。 這份 HOWTO 的最新版本的拷貝可在 [1]Linux Documentation Project 或是 [2]http://www.imaxx.net/~thrytis/glibc/Glibc2-HOWTO.html 找到。 1.3 這份文件的最新改變 1.5 與 1.4 版的差別: * 由 Ed Bailey 加入索引 * 我的新電子郵件信箱位址 1.4 與 1.3 版的差別: * 將目前狀態(tài)由實(shí)驗(yàn)性改成成熟產(chǎn)品。 * 更新發(fā)展中的移植列表。 * 更新最新版到 2.0.6。 2. 選擇你的安裝方式 有許多種方式安裝 glibc,你可以安裝成一個(gè)測(cè)試用的函式庫(kù), 將目前使用的函 式庫(kù)當(dāng)作是內(nèi)定的, 然後在編譯程式的時(shí)候用不同的選項(xiàng)來(lái)試用新的函式庫(kù)。 用這種安裝方式以後可以輕易的移除 glibc。 (雖然用 glibc 連結(jié)的程式在移除 glibc 後都將不能使用) 另外,用這種方式安裝,你必須由原始碼重新編譯, 并 沒(méi)有 binary distribution 可以安裝成測(cè)試的函式庫(kù)。 這樣的安裝請(qǐng)參照 [3] 安裝成測(cè)試用的函式庫(kù)。 這份文件中所說(shuō)的另一種方式則是將 glibc 安裝成主要函式庫(kù)。 所有新編譯的 程式都將會(huì)使用 glibc, 但是你也可以在編譯時(shí)用不同的選項(xiàng)而將程式連結(jié)到舊 的函式庫(kù)。 你可以直接安裝已經(jīng)編譯好的版本,也可以自己編譯函式庫(kù)。 假如 想更改最佳化或是組態(tài)選項(xiàng), 或是想加入已編譯好的版本中未支援的 add-on 的 話(huà), 那你必需取得原始碼并且自己編譯,這個(gè)安裝的過(guò)程請(qǐng)參照 [4]安裝成主要 的 C 函式庫(kù) Frodo Looijaard 描述了另一種 glibc 的安裝方式。 他的方法是將 glibc 安裝 成次要的函式庫(kù), 然後設(shè)定交叉編譯器 (cross compiler) 來(lái)使用 glibc。 這 個(gè)方式比起這份文件中的測(cè)試安裝要復(fù)雜的多,但是比較容易連結(jié)到 glibc。 這 個(gè)方法在他的 [5]Installing glibc-2 on Linux 文件中說(shuō)明。 假如你現(xiàn)在使用的是 Debian 1.3, 但是不想為了 glibc 而升級(jí)到不穩(wěn)定的版本 , 那麼 [6]Debian libc5 to libc6 Mini-HOWTO 會(huì)告訴你如何使用 Debian 的 package 來(lái)升級(jí)。 假如你要把 glibc 2 安裝到一重要的系統(tǒng)上, 那也許你應(yīng)使用測(cè)試的安裝,或 是在備用系統(tǒng)上試試看。 即使沒(méi)有臭□,某些程式在編譯之前仍然需要某些修改 , 原因在於某些函式原型與型態(tài)上的改變。 3. 取得函式庫(kù) Glibc 2 包含 glibc package 以及數(shù)個(gè)附加套件: LinuxThreads、 Locale 與 Crypt, 原始碼在 * [7]ftp://prep.ai.mit.edu/pub/gnu/glibc-2.0.6.tar.gz * [8]ftp://prep.ai.mit.edu/pub/gnu/glibc-linuxthreads-2.0.6.tar.gz * [9]ftp://prep.ai.mit.edu/pub/gnu/glibc-localedata-2.0.6.tar.gz * [10]ftp://prep.ai.mit.edu/pub/gnu/glibc-crypt-2.0.6.tar.gz 你需要大約 150MB 的磁碟空間來(lái)作完全的編譯與安裝, 核心函式庫(kù)的基本安裝 大約要 50MB。 2.0.6 并沒(méi)有 binary 的 package, 2.0.4 的 binary package 只有 i386 及 m68k 的版本, 而 2.0.1 for alpha 則可以在以下地方找到: * Intel x86: + [11]ftp://prep.ai.mit.edu/pub/gnu/glibc-2.0.4.bin.i386.tar.gz + [12]ftp://prep.ai.mit.edu/pub/gnu/glibc-crypt-2.0.4.bin.i386. tar.gz * Alpha: + [13]ftp://prep.ai.mit.edu/pub/gnu/glibc-2.0.1.bin.alpha-linux .tar.gz + [14]ftp://prep.ai.mit.edu/pub/gnu/glibc-crypt-2.0.1.bin.alpha -linux.tar.gz * m68k: + [15]ftp://prep.ai.mit.edu/pub/gnu/glibc-2.0.4-m68k-linux.bin. tar.gz + [16]ftp://prep.ai.mit.edu/pub/gnu/glibc-crypt-2.0.4-m68k-linu x.bin.tar.gz 由於 cypt 這個(gè)附加套件有出口限制,非美國(guó)使用者請(qǐng)到 [17]ftp://ftp.ifi.uio.no/pub/gnu 取得。 如果你用的是 RedHat distribution, 那你可以從 [18]ftp://ftp.redhat.com/pub/redhat/ 取得 glibc2 的 rpm。 在 RedHat distribution 5.0 中, glibc 2 是主要的 C 函式庫(kù)。 如果你用的是 Debian distribution,那你可以從 [19]ftp://ftp.debian.org/debian/dists/unstable/main/ 取得 glibc2 的 package。檔名是 libc6。 Glibc 2 目前是 Debian 測(cè)試版的基本 package, 等 到 Debian 2.0 出來(lái)之後將會(huì)是主要的 C 函式庫(kù)。 4. 安裝成測(cè)試用的函式庫(kù) 這一節(jié)的內(nèi)容是關(guān)於如何將 glibc 2 安裝成測(cè)試用的函式庫(kù)。 所有編譯的程式 都連結(jié)到你目前的函式庫(kù), 除非你給了某些額外的參數(shù)才會(huì)連結(jié)到新的函式庫(kù)。 由於路徑被編譯到某些檔案中,你需要由原始碼來(lái)安裝這函式庫(kù)。 4.1 編譯與安裝 需求 * 約 150 MB 的磁碟空間 * GNU make 3.75 * gcc >= 2.7.2 (最好是 2.7.2.1) * binutils 2.8.1 (假如是 alpha 你還需要 snapshot) * bash 2.0 * autoconf 2.12 (假如你更動(dòng)了 configure.in) * texinfo 3.11 在一臺(tái)安裝有 64MB 記憶體 i586@133 的機(jī)器上, 編譯完整的函式庫(kù) (包括附加 套件) 大約須要 3 小時(shí)。 而在 i686@200 則須約一個(gè)半小時(shí)。 解開(kāi)原始碼 你必需由 archive 中取出原始碼。如此才能編譯它,最好的方式如下: 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 這會(huì)將 linuxthreads、 crypt 與 localedata 等目錄放至 glibc-2.0.6 的目錄 底下, 如此 configure 才可以找到這些 add-ons。 設(shè)定組態(tài) 在 glibc-2.0.6 的目錄底下,建立一個(gè)新的目錄 compile,并且 cd 到 compile 底下, 所有的工作都會(huì)在這個(gè)目錄中完成,這會(huì)簡(jiǎn)化後續(xù)的清除工作。 (發(fā)展者似乎并未讓 'make clean' 作得很好) mkdir compile cd compile 執(zhí)行 ../configure。 要使用父加套件,你必需用 --enable-add-ons 指定, 例 如說(shuō) --enable-add-ons=linuxthreads,crypt,localedata。 你也必需指定要安裝的目錄,/usr/i486-linuxglibc2 是個(gè)不錯(cuò)的選擇, 這樣的 configure 命令如下: ../configure --enable-add-ons=linuxthreads,crypt,localedata --prefix=/usr/i486-linuxglibc2 編譯與安裝 要編譯與驗(yàn)證,執(zhí)行 make make check 假如 'make check' 成功了,安裝函式庫(kù): make install4.2 更新 dynamic loader 1. 建立連結(jié), 從 ld.so 到 /lib/ld-linux.so.2: ln -s /usr/i486-linuxglibc2/lib/ld-linux.so.2 /lib/ld-linux.so.2 當(dāng)一個(gè)檔案連結(jié)時(shí),這個(gè)函式庫(kù)是唯一一個(gè)位置固定的。 當(dāng)穩(wěn)定的版本出現(xiàn) 的時(shí)候, 在 /lib 使用連結(jié)也會(huì)使得將 glibc 升級(jí)為主要函式庫(kù)時(shí)更為輕 松。 2. 修改 /etc/ld.so.conf。 你需要增加新的函式庫(kù)所在的路徑到檔案的最後, 這路徑應(yīng)該是 <prefix>/lib。 假如用以上的選擇就應(yīng)該是 /usr/i486-linuxglibc2/lib。 在你修改了 /etc/ld.so.conf 之後,執(zhí)行: ldconfig -v4.3 設(shè)定 gcc 安裝的最後一步是更新 /usr/lib/gcc-lib 以使 gcc 知道如何使用新的函式庫(kù)。 首先,你需要復(fù)制目前的組態(tài),要知道目前的組態(tài),使用 gcc 的 -v 選項(xiàng): % gcc -v Reading specs from /usr/lib/gcc-lib/i486-unknown-linux/2.7.2.2/specs gcc version 2.7.2.2 這里,i486-unknown-linux 是目前所用的系統(tǒng),2.7.2.2 則是目前版本。 你需 要將 /usr/lib/gcc-lib/<系統(tǒng)> 復(fù)制到新的測(cè)試系統(tǒng)目錄: cd /usr/lib/gcc-lib/ cp -r i486-unknown-linux i486-linuxglibc2 到你的新系統(tǒng)目錄以及版本目錄下: cd /usr/lib/gcc-lib/i486-linuxglibc2/2.7.2.2
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -