LinuxSir.cn,穿越时空的Linuxsir!

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

LFS 6.3之5.4 gcc编译中命令的疑问

[复制链接]
发表于 2008-3-10 15:25:13 | 显示全部楼层 |阅读模式
ln -vs gcc /tools/bin/cc

这一章节的最后一条指令。

从上面看下来,此时所在的目录为gcc-build
那么在这个目录下执行了
ln -vs gcc /tools/bin/cc
这条指令,
这里的 gcc 是不是gcc-build目录下的gcc?还是host的gcc、或者是/tools/bin/下的gcc?
按照文章的意思,应当是/tools/bin下的。但是按上面的做法,怎么会是/tools/bin 下的呢?
发表于 2008-3-10 17:28:53 | 显示全部楼层
这条指令的意思是:
创建符号连接/tools/bin/cc,让它指向同一目录下的gcc
有问题吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-10 20:30:35 | 显示全部楼层
我的疑问是:
按照手册上这个部分的介绍,其本意应当是在/tools/bin下面建立一个链接cc指向/tools/bin下的gcc,
但是现在按手册的步骤下来,当前目录是编译gcc的目录gcc-build,那么用了上面的指令结果是在/tools/bin下建立了一个链接cc指向了gcc-build目录下的gcc,而这个目录在make install后要被删除掉的。

是不是应该改为
ln -sv /tools/bin/gcc /tools/bin/cc
回复 支持 反对

使用道具 举报

发表于 2008-3-10 22:06:06 | 显示全部楼层
你运行过那个命令没?还是你自己猜测的?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-11 11:27:20 | 显示全部楼层
以前做过6.2,现在是在看6.3手册,做理论上的复习,没有实际做。

我验证过,环境为lfs6.3livecd引导出的系统,就当正常使用的系统,直接用相同的格式验证这条指令,结果就像我说的那样。
在/下运行gcc命令是可以的。
然后
mkdir /aaa
ln -sv gcc /aaa/cc
虽然在aaa里建立了cc,但是它并不指向/sbin 或者 /bin 等等下真正的gcc,仍旧是指向/下的,而/下没有gcc,所以是个死链,使用它并不能运行gcc,即
cd aaa
cc
并不能运行gcc

也看了ln的help,既然参数gcc没有带路径,那么应当是指当前目录。
难道当前目录下没有,就会使用搜索路径替代?那又如何解释上面我验证的结果呢?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-11 11:37:24 | 显示全部楼层
手册中该小节的指令
mkdir -v ../gcc-build
cd ../gcc-build
CC="gcc -B/usr/bin/" ../gcc-4.1.2/configure --prefix=/tools \
    --with-local-prefix=/tools --disable-nls --enable-shared \
    --enable-languages=c
make bootstrap
make install
ln -vs gcc /tools/bin/cc
回复 支持 反对

使用道具 举报

发表于 2008-3-11 13:13:29 | 显示全部楼层
注意  4.2. Creating the $LFS/tools Directory 中的一段话
ln -sv $LFS/tools /
Note

The above command is correct. The ln command has a few syntactic variations, so be sure to check info coreutils ln and ln(1) before reporting what you may think is an error.

你肯定是没有看手册
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-11 14:01:04 | 显示全部楼层
仔细研究了一下,确实是指向同一目录下。

理解错误。
回复 支持 反对

使用道具 举报

发表于 2008-3-12 06:31:57 | 显示全部楼层
在没自己尝试过的情况下,别轻易怀疑别人的说法。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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