我在ubuntu 11.10下编译gcc 4.6.2有一个问题。 该错误很受欢迎,即/ usr / bin / ld:找不到crti.o:没有这样的文件或目录 我尝试了LIBRARY_PATH = / usr / lib / x86_64-linux-gnu,其中链接器可以找到crti.o但是配置抱怨LIBRARY_PATH在构建gcc时不应该包含当前目录的路径
checking LIBRARY_PATH variable... contains current directory
configure: error:
*** LIBRARY_PATH shouldn't contain the current directory when
*** building gcc. Please change the environment variable
*** and run configure again.
make[2]: *** [configure-stage2-gcc] Error 1
make[2]: Leaving directory `/home/abdul/cc02/gcc-4.6.2/src-infra/obj-gcc'
make[1]: *** [stage2-bubble] Error 2
make[1]: Leaving directory `/home/abdul/cc02/gcc-4.6.2/src-infra/obj-gcc'
我也试过设置LD_LIBRARY_PATH但没有用。
提前致谢。
答案 0 :(得分:30)
显然,你的LIBRARY_PATH
以冒号结束:
/usr/lib/x86_64-linux-gnu/:
# -----------------------^
摆脱那个:
export LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/
答案 1 :(得分:2)
结合@hmb,@ FredFoo的答案,并避免对用户系统的假设:
似乎你的LD_LIBRARY_PATH
以冒号结尾,GCC不赞同。您还应确保C_INCLUDE_PATH
不以冒号结尾以避免相关问题。这是如何做到的:
export LIBRARY_PATH=$(echo $LIBRARY_PATH | sed 's/:$//; s/^://;')
export C_INCLUDE_PATH=$(echo $C_INCLUDE_PATH | sed 's/:$//; s/^://;')
然后重新配置构建(使用configure -v
)。
答案 2 :(得分:1)
我遇到了同样的问题,并在askubuntu找到了解决方案。
特别是在以下评论中:
并且,如果您不喜欢修补源代码,并且设置标志不适合您,只需将crt * .o软链接到/ usr / lib目录(您将在/ usr中找到它们) / lib / i386-linux-gnu或/ usr / lib / x86_64-linux-gnu)。 - 艾姆11月15日'11时间14:55
答案 3 :(得分:0)
以下命令解决了问题
取消设置LIBRARY_PATH; ./configure -v