LinuxSir.cn,穿越时空的Linuxsir!

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

编译gcc出错

[复制链接]
发表于 2004-12-13 11:46:13 | 显示全部楼层 |阅读模式
我是第一次用LFS。按照LFS 6.0book第5章的说明,装完binutils后,开始第一次gcc编译。make BOOT_LDFLAGS=“-static” bootstrap出错。错误信息如下:
stage1/xgcc -Bstage1/ -B/tools/i686-pc-linux-gnu/bin/ -c   -g -O2 -DIN_GCC   -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -pedantic -Wno-long-long -Wold-style-definition     -DHAVE_CONFIG_H -DGENERATOR_FILE    -I. -I. -I../../gcc-3.4.1/gcc -I../../gcc-3.4.1/gcc/. -I../../gcc-3.4.1/gcc/../include  ../../gcc-3.4.1/gcc/errors.c -o errors.o
stage1/xgcc -Bstage1/ -B/tools/i686-pc-linux-gnu/bin/   -g -O2 -DIN_GCC   -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -pedantic -Wno-long-long -Wold-style-definition     -DHAVE_CONFIG_H -DGENERATOR_FILE -static -o genmodes \
genmodes.o errors.o ../libiberty/libiberty.a
/tools/i686-pc-linux-gnu/bin/ld: cannot find -lc
collect2: ld returned 1 exit status
如果用make BOOT_LDFLAGS=“-all-static” bootstrap就可以编译通过,但是我不知道这样编译以后会否有问题。
有经验的xd回一下呀
发表于 2004-12-13 17:01:08 | 显示全部楼层
BOOT_LDFLAGS=“-all-static 这个好像没有效果的吧?
 楼主| 发表于 2004-12-13 19:35:11 | 显示全部楼层
请问“没有效果”是指什么?
 楼主| 发表于 2004-12-13 19:36:10 | 显示全部楼层
太不幸了。按照手册编译第2遍binutils时,出错:
gcc -W -Wall -Wstrict-prototypes -Wmissing-prototypes -g -O2 -o .libs/ar arparse.o arlex.o ar.o not-ranlib.o arsup.o rename.o binemul.o emul_vanilla.o bucomm.o version.o filemode.o  ../bfd/.libs/libbfd.so -L/mnt/lfs/sources/binutils-build/libiberty/pic -liberty ../libiberty/libiberty.a -lfl -ldl -Wl,--rpath -Wl,/tools/lib
/mnt/lfs/tools/bin/../lib/gcc/i686-pc-linux-gnu/3.4.1/../../../../i686-pc-linux-gnu/bin/ld: cannot find -lfl
collect2: ld returned 1 exit status
make[3]: *** [ar] Error 1
难道是第一遍编译gcc的后遗症吗?
发表于 2004-12-13 19:48:26 | 显示全部楼层
我的没有效果,意思是:  -static 是一个参数,如果你改成 -all-static 的话,编译器就不是按照 static 编译。

你用的是什么发行版?。
 楼主| 发表于 2004-12-13 20:01:27 | 显示全部楼层
Mandrake  10.1
发表于 2004-12-13 20:07:14 | 显示全部楼层
我不知道为什么,我没用过Mandrake。你可以试试用bootcd。置顶的下载帖有说明。
 楼主| 发表于 2004-12-13 20:16:26 | 显示全部楼层
我查了一下libtool帮助: libtool --help --mode=link
  -all-static的意思是 do not do any dynamic linking at all
应该是全部静态连接吧
发表于 2004-12-13 20:19:34 | 显示全部楼层
那为什么 -static不行呢?:)。。肯定有原因。我虽然不知道原因,不过我一般不会轻易改动 book的说明,unless I know what I am doing.
 楼主| 发表于 2004-12-13 20:34:11 | 显示全部楼层
你说的有道理,book肯定是对的。我猜是Mandrake使用的gcc的原因。
请问怎么看一个可执行程序是用什么版本的gcc编译的?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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