LinuxSir.cn,穿越时空的Linuxsir!

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

crti.o:No such file,什么原因?(完)

[复制链接]
发表于 2006-5-28 11:40:24 | 显示全部楼层 |阅读模式
按照Version SVN-20060520-x86 版本做下去,进行到
5.8. GCC-4.1.0 - Cross Compiler Final 处,
make AS_FOR_TARGET="${LFS_TARGET}-as" \
LD_FOR_TARGET="${LFS_TARGET}-ld"

报错,提示找不到crti.o。
错误为:
crti.o:No such file.

不知道crti.o是什么东西?怎么出错了?
 楼主| 发表于 2006-5-29 17:30:07 | 显示全部楼层
刚才查看了CLFS的邮件论坛,看到有人和我一样的错误,跟了很多的回复,结果有个回复一句中肯,说将#undef STARTFILE_PREFIX_SPEC和#define STARTFILE_PREFIX_SPEC写在一行了,然后编译报错说ld:crti.o:No such file.这给了我提示,原来我将
#undef STARTFILE_PREFIX_SPEC
#define STARTFILE_PREFIX_SPEC "/tools/lib/"
写成了:
#undef STARTFILE_PREFIX_SPEC
#define STARTFILE_PREFIX_SPEC "/tools/lib"
细心的你知道错在哪里了吗?
就是/tools/lib后少了一个斜杠,导致错误。
问题终于解决了,可是我搞不懂:
/tools/lib/ 和
/tools/lib 有区别吗?请各位大哥指点。
回复 支持 反对

使用道具 举报

发表于 2006-5-29 18:46:14 | 显示全部楼层
有区别, 关键看是怎么用 STARTFILE_PREFIX_SPEC 的.
如果
${STARTFILE_PREFIX_SPEC}/crti.o , 两种写法都没有问题, 中间的// 和 / 是一样的.
${STARTFILE_PREFIX_SPEC}crti.o 就必须有一个 /
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-30 14:34:40 | 显示全部楼层
照你说的看来,在源代码的某处对STARTFILE_PREFIX_SPEC的引用处,少了一个/杠。导致ld 不能识别crti.o了。
回复 支持 反对

使用道具 举报

发表于 2007-8-11 19:05:28 | 显示全部楼层
Post by gongbing
刚才查看了CLFS的邮件论坛,看到有人和我一样的错误,跟了很多的回复,结果有个回复一句中肯,说将#undef STARTFILE_PREFIX_SPEC和#define STARTFILE_PREFIX_SPEC写在一行了,然后编译报错说ld:crti.o:No such file.这给了我提示,原来我将
#undef STARTFILE_PREFIX_SPEC
#define STARTFILE_PREFIX_SPEC "/tools/lib/"
写成了:
#undef STARTFILE_PREFIX_SPEC
#define STARTFILE_PREFIX_SPEC "/tools/lib"
细心的你知道错在哪里了吗?
就是/tools/lib后少了一个斜杠,导致错误。
问题终于解决了,可是我搞不懂:
/tools/lib/ 和
/tools/lib 有区别吗?请各位大哥指点。



楼主说得STARTFILE_PREFIX_SPEC是在哪个文件里啊?我也遇到了这个问题。
回复 支持 反对

使用道具 举报

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

本版积分规则

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