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

📄 048.htm

📁 LINUX的操作系统分析文件和使用文件
💻 HTM
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><!-- saved from url=(0056)http://data.km169.net/wsxx/showjq.asp?id=1356&type=LINUX --><html><head><title>New Page 1</title><meta content="text/html; charset=gb2312" http-equiv="Content-Type"><meta content="Microsoft FrontPage 3.0" name="GENERATOR"><meta content="FrontPage.Editor.Document" name="ProgId"><!--webbot bot="HTMLMarkup" startspan TAG="XBOT" --></SCRIPT><!--webbot bot="HTMLMarkup" endspan--><style>A:link {	COLOR: #4444ff; TEXT-DECORATION: underline}A:visited {	COLOR: #4444ff; TEXT-DECORATION: underline}A:active {	TEXT-DECORATION: none}A:hover {	COLOR: #ff0000; TEXT-DECORATION: none}BODY {	COLOR: #505050; FONT-FAMILY: 宋体; FONT-SIZE: 9pt}TD {	FONT-FAMILY: 宋体; FONT-SIZE: 9pt}TD.a {	FONT-FAMILY: 宋体; FONT-SIZE: 9pt}TD.b {	FONT-FAMILY: 宋体; FONT-SIZE: 11pt; font-color: #ff0000}.other1 {	FONT-SIZE: 9pt; LETTER-SPACING: 0px; LINE-HEIGHT: 18px}.other2 {	FONT-SIZE: 10.5pt}</style></head><body bgColor="#FFFFFF" leftMargin="7" topMargin="7"><hr SIZE="0"><p><b><font color="#fe3a42">标题: ■&nbsp;</font><font color="#9b004e"> </font>Glibc 2 HOWTO 中文版: 使用非主要 libc 编译程式</b><br>姓名 :Eric Green,<br>Email:thrytis@imaxx.net<br>地址 :<br>转摘 :http://member.netease.com/</p><p align="center"><a href="linux.htm">返回</a></p><hr SIZE="0"><p><br><br>6. 使用非主要 libc 编译程式 <br>有些时後你会想要使用不同的 library 来编译你的程式,这一节会解释如何达成这个目的。我会使用在前两节中所使用的目录与安装名称,记得要改变这些名称以符合你的设定。 <br><br>6.1. 一个关於使用非主要 libc 的警告 <br>在你开使编译任何会在开机时用到的程式之前,假如程式是动态连结,并且是在 non-root partition 被 mount 之前使用的话,那所有连结用的 library 都必须在 root partition 上。在前面的安装程序里,我们将 glibc 安装成主要的 library,而旧的 library 仍然保留在 /lib, /lib 会在 root partition 上,也就是说,所有在开机时会用到的程式都能正常工作。然而,若你的 /usr 是在不同的 partition 上,且把 glibc 当成测试用的 library,安装在 /usr/i486-linuxglibc2,那所有你用 glibc 编译的程式都将不能使用,直到 /usr 已经被 mount 为止。 <br><br>6.2. 用测试安装的 glibc 编译程式 <br>要用测试安装的 glibc 编译程式,你必须要将 include 录路径重设成 glibc 的 include 路径。指定 ``-nostdinc'' 会取消正常 include 路径,而 ``-I/usr/i486-linuxglibc2/include'' 则会指到 glibc 的 include 目录,你也必须要只纸指定 gcc 标准 include 目录,通常是 /usr/lib/gcc-lib/i486-linuxglibc2/2.7.2.2/include。 (这里假设你安装测试的 library 在 i486-linuxglibc2,而 gcc 的版本是 2.7.2.2) <br><br>要用测试安装的 glibc 来连结,你必须指明 gcc 设定,这是由 ``-b i486-linuxglibc2'' 这选项来达成。 <br><br>对大部份的程式,你可以简单的将其加入 makefile 的 $CFLAGS 与 $LDFLAGS 选项中: <br><br>CFLAGS = -nostdinc -I/usr/i486-linuxglibc2/include -I/usr/lib/gcc-lib/i486-linuxglibc2/2.7.2.2/include -b i486-linuxglibc2 <br>LDFLAGS = -b i486-linuxglibc2 <br><br><br>假如你使用 configure 这个 script,在执行 configure 之前,定义 shell 变数 $CFLAGS 与 $LDFLAGS (在 csh/tcsh 下用 env/setenv 在 sh/bash/其它之下用 set/export)。这样产生的 makefile 应该会包含正确的 $CFLAGS 与 $LDFLAGS。不过并非所有的 configure scrpt 都会去取得这些变数,所以在执行完 configure 之後,你还是要简检查一下 makefile,假如需要的话,手动修改它。 <br><br>假如你所要编译的程式只叫 gcc, (而非直接呼叫 cpp 或 binutils) 你可以使用以下的 script,省去每次指定所有选项的麻烦: <br><br>#!/bin/bash <br>/usr/bin/gcc -b i486-linuxglibc2 -nostdinc \ <br>-I/usr/i486-linuxglibc2/include \ <br>-I/usr/lib/gcc-lib/i486-linuxglibc2/2.7.2.2/include &quot;$@&quot; <br><br><br>编译时你可以使用这个 script 而不是 gcc。 <br><br>6.3. 当 glibc 是主要 library 时用 libc 5 编译程式 <br>当你已经将 glibc 安装成主要的 library 之後,又想用旧的 library 来编译程式的时後,你必须将 include 路径重设成旧的路径。指定 ``-nostdinc'' 将会使预设的路径无效,而 ``-I/usr/i486-linuxlibc5/include'' 会将 include 的路径指到旧 library 的 include 路径,你也必须要指定 ``-I/usr/lib/gcc-lib/i486-linuxlibc5/2.7.2.2/include'' 以含入 gcc 所需的 include 档。注意要视你新的目录与 gcc 版本来调整这些路径。 <br><br>要用旧的 libc 来做连结,你必须指定 gcc 所用的架构。这是由 ``-b i486-linuxlibc5'' 这个选项所指定的。 <br><br>对大部份的程式,你可以简单的将这些选项加入到 makefile 里的 $CFLAGS 与 $LDFLAGS 选项里: <br><br>CFLAGS = -nostdinc -I/usr/i486-linuxlibc5/include -I/usr/lib/gcc-lib/i486-linuxlibc5/2.7.2.2/include -b i486-linuxlibc5 <br>LDFLAGS = -b i486-linuxlibc5 <br><br><br>假如你使用 configure 这个 script,在执行 configure 之前,定义 shell 变数 $CFLAGS 与 $LDFLAGS (在 csh/tcsh 下用 env/setenv 在 sh/bash/其它之下用 set/export)。这样产生的 makefile 应该会包含正确的 $CFLAGS 与 $LDFLAGS。不过并非所有的 configure scrpt 都会去取得这些变数,所以在执行完 configure 之後,你还是要简检查一下 makefile,假如需要的话,手动修改它。 <br><br>假如你所要编译的程式只叫 gcc, (而非直接呼叫 cpp 或 binutils) 你可以使用以下的 script,省去每次指定所有选项的麻烦: <br><br>#!/bin/bash <br>/usr/bin/gcc -b i486-linuxlibc5 -nostdinc \ <br>-I/usr/i486-linuxlibc5/include \ <br>-I/usr/lib/gcc-lib/i486-linuxlibc5/2.7.2.2/include &quot;$@&quot; <br><br><br>编译时你可以使用这个 script 而不是 gcc。 <br></p><hr SIZE="0"><p align="center"><a href="linux.htm">返回</a></p><p><br></p></body></html>

⌨️ 快捷键说明

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