+ -
当前位置:首页 → 问答吧 → LFS 6.3之5.4 gcc编译中命令的疑问

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

时间:2008-03-10

来源:互联网

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 下的呢?

作者: mech   发布时间: 2008-03-10

这条指令的意思是:
创建符号连接/tools/bin/cc,让它指向同一目录下的gcc
有问题吗?

作者: 地球发动机   发布时间: 2008-03-10

我的疑问是:
按照手册上这个部分的介绍,其本意应当是在/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

作者: mech   发布时间: 2008-03-11

你运行过那个命令没?还是你自己猜测的?

作者: 晨想   发布时间: 2008-03-11

以前做过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没有带路径,那么应当是指当前目录。
难道当前目录下没有,就会使用搜索路径替代?那又如何解释上面我验证的结果呢?

作者: mech   发布时间: 2008-03-11

手册中该小节的指令
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

作者: mech   发布时间: 2008-03-11

注意 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.

你肯定是没有看手册

作者: Vamperor   发布时间: 2008-03-11

仔细研究了一下,确实是指向同一目录下。

理解错误。

作者: mech   发布时间: 2008-03-11

在没自己尝试过的情况下,别轻易怀疑别人的说法。

作者: 晨想   发布时间: 2008-03-12

热门下载

更多