在ubuntu 11.10下编译gcc 4.6.2时出错

时间:2011-12-19 18:28:21

标签: gcc ubuntu

我在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但没有用。

提前致谢。

4 个答案:

答案 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