⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 glibc2-howto.txt

📁 linux-bible.rar linux-bible.rar
💻 TXT
📖 第 1 页 / 共 3 页
字号:
 /usr/bin/gcc -b i486-linuxglibc2 -nostdinc \              -I/usr/i486-linuxglibc2/include \              -I/usr/lib/gcc-lib/i486-linuxglibc2/2.7.2.2/include "$@"   编译时你可以使用这个 script 而不是 gcc。   6.3 当 glibc 是主要函式库时用 libc 5 编译程式   当你已经将 glibc 安装成主要的函式库之後,又想用旧的函式库来编译程式的时   候, 你必须将 include 路径重设成旧的路径。 指定 "-nostdinc" 将会使预设   的路径无效, 而 "-I/usr/i486-linuxlibc5/include" 会将 include 的路径指   到旧函式库的 include 路径, 你也必须要指定   "-I/usr/lib/gcc-lib/i486-linuxlibc5/2.7.2.2/include" 以含入 gcc 所需的   include 档。 注意要视你新的目录与 gcc 版本来调整这些路径。      要用旧的 libc 来做连结,你必须指定 gcc 所用的架构。 这是由 "-b   i486-linuxlibc5" 这个选项所指定的。      对大部份的程式,你可以简单的将这些选项加入到 makefile 里的 $CFLAGS 与   $LDFLAGS 选项里:    CFLAGS = -nostdinc -I/usr/i486-linuxlibc5/include -I/usr/lib/gcc-lib/i486-linuxlibc5/2.7.2.2/include -b i486-linuxlibc5 LDFLAGS = -b i486-linuxlibc5   假如你使用 configure 这个 script, 在执行 configure 之前, 定义 shell   变数 $CFLAGS 与 $LDFLAGS (在 csh/tcsh 下用 env/setenv 在 sh/bash/或其它   之下用 set/export)。 这样产生的 makefile 应该会包含正确的 $CFLAGS 与   $LDFLAGS。 不过并非所有的 configure scrpt 都会去取得这些变数, 所以在执   行完 configure 之後,你还是要简检查一下 makefile, 假如需要的话,手动修   改它。      假如你所要编译的程式只呼叫 gcc,(而不直接呼叫 cpp 或 binutils) 你可以使   用以下的 script,省去每次指定所有选项的麻烦:    #!/bin/bash /usr/bin/gcc -b i486-linuxlibc5 -nostdinc \              -I/usr/i486-linuxlibc5/include \              -I/usr/lib/gcc-lib/i486-linuxlibc5/2.7.2.2/include "$@"   编译时你可以使用这个 script 而不是 gcc。   7. 编译 C++ 程式   因为 libg++ 使用了部份的数学函式库,也就是说会连结到 libm。 由於你目前   的 libg++ 是用旧版的函式库所建立的, 所以你必须重新用 glibc 来 compile   libg++ 或是取得一份预先编译好的版本。 最新版的 libg++ source 与用   glibc 所连结的预先编译版可以在   [22]ftp://ftp.yggdrasil.com/private/hjl/ 找到。   7.1 用测试的 C 函式库安装 libg++   假如你已经将 glibc 安装成测试用的函式库,那你必须安装到 glibc 所安装的   目录下 (例如由前一节所示的 /usr/i486-linuxglibc2)。 假如你要安装预先编   译好的版本 (这也是我建议的安装方式,因为我一直都不能用这种方式成功地编   译 libg++), 你必须将档案解到暂存的目录下, 将 usr/lib/ 下的所有档案搬   到 <install directory>/lib/, 并将 usr/include/ 下的所有档案搬到   <install directory>/include/ 下, (记得先删除 include/g++ 这个连结!)   再将 usr/bin/ 下的档案搬到 <install directory>/bin/。   7.2 在主要 glibc 下安装 libg++   若你已经将 glibc 安装成主要的函式库,假如还想要用旧的 libc 来编译 g++   的程式, 那你必须先将旧的 libg++ 档案移至旧的 libc 的目录下。 也许最简   单的方式就是如前一节用 libc 5 来安装一份新版的拷贝, 然後再正常安装   glibc 版。   7.3 使用非主要的 C 函式库来编译 C++ 程式   假如你想用非主要的 C 函式库来编译 C++ 程式, 那你必须要加入 g++ 的   include 目录。 在上面的例子中, 对测试用的 glibc 是   /usr/i486-linuxglibc2/include/g++, 而对主要 glibc 则是   /usr/i486-linuxlibc5/include/g++, 这通常都可以由添加至 $CXXFLAGS 这个   变数来完成:    CXXFLAGS = -nostdinc -I/usr/i486-linuxglibc2/include -I/usr/lib/gcc-lib/i486-linuxglibc2/2.7.2.2/include -I/usr/i486-linuxlibc5/include/g++ -b i486-linuxglibc28. 报告臭□   假如你以为这函式库有错,请先阅读 FAQ,也许已经有人遇到过这个问题, 并且   也已经有了简单的解决方法。 另外,你也应该查看 INSTALL 档中的   "Recommended Tools to Install the GNU C Library" 一节, 因为有些错误不   在於 glibc 而是在於这些工具。      假设你找到了臭□,请先确定那的确是臭□。 一个判断的好方法是看看 glibc   的行为是否与其它的 C 函式库相同。 假如相同的话,那也许你是错的,而函式   库是正确的。 (但也不一定如此) 假如不相同的话,那肯定两者之中有一个是错   的。      接著,请到 [23]http://www-gnats.gnu.org:8080/cgi-bin/wwwgnats.pl, 并且   查看臭□资料库,确定这个问题尚未有人提出。 你也应该看看 BUGS (内付於   libc 中) 所列出的目前已被发现的臭□。      一旦你确定找到了一只新的臭□,请试著将它缩小到最小的 test case。 就 C   函式库而言,你只需要将它缩小到单独一个函式呼叫(假如可以的话)。 这应该不   是太困难的事。      最後一个步骤是就你的 test case 提出臭□报告。 要送出臭□报告,请包含你   的 test case、你所得到的结果、你所期待的结果、 你认为可能的原因在那 (只   要你曾想过的任何原因)、你的系统类别、你所使用的 GNU C 函式库、 GNU CC   编译器、GNU binutils 的版本。另外, 请附上执行 configure 时产生的   config.status 与 config.make, 这两个档案会在你执行 configure 时候的目   录下。      所有的臭□报告都应该使用 glibcbug 这个 GNU libc 所附的 shell script 送   至 [24]bugs@gnu.org (旧的位址 [25]bugs@gnu.ai.mit.edu 也仍然可以使用)。   或是到 GNATS 网站上利用   [26]http://www-gnats.gnu.org:8080/cgi-bin/wwwgnats.pl 这个介面来做。      你的建议与问题应该送到 [27]bugs-glibc@prep.ai.mit.edu 这个邮递列表。 假   如你没有阅读新闻群组 gnu.bug.glibc, 那麽你可以要求   [28]bug-glibc-request@prep.ai.mit.edu 加入这个列表。      请不要将 GNU C 函式库的臭□报告送到 <bug-gcc@prep.ai.mit.edu>, 这是为   了 GNU CC 而设立的,而 GNU CC 与 GNU C 函式库是由不同人们的所维护的。   9. Specs 档□例   这里是一份 specs 的□例。这将使 gcc 用 glibc2 来编译与连结。 它应该位於   /usr/lib/gcc-lib/<新系统目录>/<gcc 版本>. 假如你用的是 x86 的系统,那你   也许可以直接将这一段复制到档案里去。    *asm: %{V} %{v:%{!V:-V}} %{Qy:} %{!Qn:-Qy} %{n} %{T} %{Ym,*} %{Yd,*} %{Wa,*:%*} *asm_final: %{pipe:-} *cpp: %{fPIC:-D__PIC__ -D__pic__} %{fpic:-D__PIC__ -D__pic__} %{!m386:-D__i486__} %{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT} *cc1: %{profile:-p} *cc1plus: *endfile: %{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s *link: -m elf_i386 %{shared:-shared}   %{!shared:     %{!ibcs:       %{!static: %{rdynamic:-export-dynamic}     %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}}  %{static:-static}}} *lib: %{!shared: %{pthread:-lpthread}        %{profile:-lc_p} %{!profile: -lc}} *libgcc: -lgcc *startfile: %{!shared:      %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s}                  %{!p:%{profile:gcrt1.o%s}                         %{!profile:crt1.o%s}}}}    crti.o%s %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s} *switches_need_spaces: *signed_char: %{funsigned-char:-D__CHAR_UNSIGNED__} *predefines: -D__ELF__ -Dunix -Di386 -Dlinux -Asystem(unix) -Asystem(posix) -Acpu(i386) -Amachine(i386) *cross_compile: 0 *multilib: . ;10. 杂项10.1 进一步的资料  相关网页       * [29]FSF's GNU C Library Home Page     * [30]Using GNU Libc 2 with Linux     * [31]Installing glibc-2 on Linux.     * [32]Debian libc5 to libc6 Mini-HOWTO.         新闻群组       * [33]comp.os.linux.development.system     * [34]comp.os.linux.development.apps     * [35]linux.dev.kernel     * [36]gnu.bugs.glibc         邮递列表     Glibc 2 Linux 讨论列表          这个邮递列表是为了让安装有 glibc,也就是新的 GNU C 函式库,的使          用者讨论用的。 议题包括相容性的问题,以及在 linux/glibc 环境下程          式的编译问题。 要订阅这个邮递列表, 请寄一封信至          [37]Majordomo@ricardo.ecn.wfu.edu, 信的内容为 "subscribe          glibc-linux <your email address>"。          10.2 贡献者列表   大部份的资讯都是由 [38]GNU Libc web page 以及 Ulrich Drepper 的   <drepper@gnu.ai.mit.edu> glibc 2 announcement 所偷来的, Andreas   Jaeger <aj@arthur.rhein-neckar.de> 则提供了部份的臭□报告。      以下各位都曾对本文件提供相关资讯以及意见:     * Allex Juang<allex@ms2.accmail.com.tw>     * Mark Brown <M.A.Brown-4@sms.ed.ac.uk>     * Ulrich Drepper <drepper@gnu.ai.mit.edu>     * Scott K. Ellis <ellis@valueweb.net>     * Aron Griffis <agriffis@coat.com>     * Andreas Jaeger <aj@arthur.rhein-neckar.de>     * Frodo Looijaard <frodol@dds.nl>     * Ryan McGuire <rmcguire@freenet.columbus.oh.us>     * Shaya Potter <spotter@capaccess.org>     * Les Schaffer <godzilla@futuris.net>     * Andy Sewell <puck@pookhill.demon.co.uk>     * Gary Shea <shea@gtsdesign.com>     * Stephane <sr@adb.fr>     * Jan Vandenbos <jan@imaxx.net>          这份文件的翻译是由以下数人所完成的:     * 中文: Allex Juang<allex@ms2.accmail.com.tw>     * 法文: Olivier Tharan <tharan@int-evry.fr>     * 日文: Kazuyuki Okamoto <ikko-@pacific.rim.or.jp>       10.3 回馈   除了撰写这份 HOWTO、维护 [39]glibc 2 for Linux 这网页、并且在我的机器上   使用之外,我与 glibc 计划完全无关, 我也不了解这方面的议题,但会尽可能   的对寄给我的问题提供帮助。 我也很欢迎你提出任何的回馈、修正、或是建议,   请将它们寄到 [40]ejg3@cornell.edu。   10.4 Copyright.   此份文件的版权属於 Eric Green,这份文件可以在 LDP 的执照下散布。References   1. http://sunsite.unc.edu/LDP   2. http://www.imaxx.net/~thrytis/glibc/Glibc2-HOWTO.html   3. file://localhost/tmp/bg5sgmltools.28325/Glibc2-HOWTO.txt.html#test-install   4. file://localhost/tmp/bg5sgmltools.28325/Glibc2-HOWTO.txt.html#primary-install   5. http://huizen.dds.nl/~frodol/glibc/   6. http://www.gate.net/~storm/FAQ/libc5-libc6-Mini-HOWTO.html   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  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  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  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-linux.bin.tar.gz  17. ftp://ftp.ifi.uio.no/pub/gnu  18. ftp://ftp.redhat.com/pub/redhat/  19. ftp://ftp.debian.org/debian/dists/unstable/main/  20. file://localhost/tmp/bg5sgmltools.28325/Glibc2-HOWTO.txt.html#specs  21. file://localhost/tmp/bg5sgmltools.28325/Glibc2-HOWTO.txt.html#specs  22. ftp://ftp.yggdrasil.com/private/hjl/  23. http://www-gnats.gnu.org:8080/cgi-bin/wwwgnats.pl  24. mailto:bugs@gnu.org  25. mailto:bugs@gnu.ai.mit.edu  26. http://www-gnats.gnu.org:8080/cgi-bin/wwwgnats.pl  27. mailto:bugs-glibc@prep.ai.mit.edu  28. mailto:bug-glibc-request@prep.ai.mit.edu  29. http://www.gnu.org/software/libc/libc.html  30. http://www.imaxx.net/~thrytis/glibc/  31. http://huizen.dds.nl/~frodol/glibc/  32. http://www.gate.net/~storm/FAQ/libc5-libc6-Mini-HOWTO.html  33. news:comp.os.linux.development.system  34. news:comp.os.linux.development.apps  35. news:linux.dev.kernel  36. news:gnu.bug.glibc  37. mailto:Majordomo@ricardo.ecn.wfu.edu  38. http://www.gnu.org/software/libc/libc.html  39. http://www.imaxx.net/~thrytis/glibc  40. mailto:ejg3@cornell.edu

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -