LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 852|回复: 4

这个链接不太懂!编译GCC第1遍

[复制链接]
发表于 2004-2-11 17:00:56 | 显示全部楼层 |阅读模式
以下是第1次装GCC的时候的最后一步,gcc是哪个?binutils-build下的吗?这个目录不是可以删吗?f参数什么意思,看man,删除什么东西?

最后,我们将创建 /tools/bin/cc 符号链接。许多程序和脚本试图运行 cc 而不是 gcc,这是为了让程序能在多种 Unix 平台上运行,并保持一致性。并不是每个人都安装 GNU CC 的。只运行 cc 把选择 C 编译器的自由留给了系统管理员,只要有这样一个符号链接指向它:
ln -sf gcc /tools/bin/cc
发表于 2004-2-11 17:13:49 | 显示全部楼层
这个连接,其实另外一种表达方式是
ln -sfn /tools/bin/gcc /tools/bin/cc
就是让cc指向gcc
这是另外一种表达方式而已,在哪一个目录下面执行这条命令,也没有区别的。
 楼主| 发表于 2004-2-12 09:19:13 | 显示全部楼层
gcc是按PATH查找的吗?为什么不是当前目录,明明是相对路径嘛?
发表于 2004-2-12 09:32:39 | 显示全部楼层
为什么不是当前目录,明明是相对路径嘛?
我在想是否可以看看 man ln 呢?我也没仔细看过,不好意思。
gcc是按PATH查找的吗?
最后,我们将创建 /tools/bin/cc 符号链接。许多程序和脚本试图运行 cc 而不是 gcc,这是为了让程序能在多种 Unix 平台上运行,并保持一致性。
发表于 2004-2-12 09:53:36 | 显示全部楼层
最初由 小丑奇兵 发表
我在想是否可以看看 man ln 呢?我也没仔细看过,不好意思。
  1. cat > ~/.bashrc << "EOF"
  2. set +h
  3. umask 022
  4. LFS=/mnt/lfs
  5. LC_ALL=POSIX
  6. PATH=/tools/bin:/bin:/usr/bin
  7. export LFS LC_ALL PATH
  8. EOF
复制代码
我想在这里借题发挥,谈谈我对第五章的看法。
其实我们要安装一个纯净的新系统,既不能凭空而生,因为一开始没有独立的工具链,或者说独立于宿主环境的编译环境。
lfs-book体现了两种思想:
一是充分利用宿主的资源,但保证极少程度地影响lfs的纯洁性,那如何做到这点呢?创建一个新用户lfs。这样我们的工作就和系统的耦合性最弱,但又确保了能使用宿主的所有资源。
二是保证充分利用上刚装好的工具集,从lfs用户的~/.bashrc可见,关闭了hash命令缓存,又把/tools/bin放在PATH变量的开头,这样shell会每次依照PATH去搜索命令,就保证了新装的工具能在被下面要安装的工具立即利用上。同时,最能影响工具纯洁性的莫过于gcc,glibc,以及binutils,所以开章就做自给自足的工具链这步工作。

ln有很多种用法,我们这里用到的就是在指定目录生成对目标文件的软链接,而软链接多数采用相对路径,当以后调用该链接时,也就是shell作命令行处理时会在PATH路径中确定该链接的目标文件,既然PATH的首路径是/tools/bin,那自然以后编译时就用上了我们自己编译的gcc。在lfs-book中随处可见这样的应用。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表