4

我升级了我的系统(到 ubuntu 13.04)并且在进程中的某个地方 gcc 坏了:-(我在尝试编译某些东西时遇到了这个异常:

/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../x86_64-linux-gnu/bin/as:
error while loading shared libraries:
libopcodes-2.22-system.so: cannot open shared object file: No such file or directory

实际上 libopcodes- 2.22 -system.so 不存在,但 libopcodes- 2.23.2 -system.so 存在。如果我从 2.22 符号链接到 2.23 gcc 仅使用另一个库失败。

因此,出于某种原因,它正在寻找错误的版本。我疯狂地尝试通过重新安装gcc、binutils、libc6等来解决它,但问题仍然存在。

我如何告诉 gcc 使用正确的共享库版本?/ gcc 从哪里获取要使用的共享库的信息?

谢谢

4

1 回答 1

3

谢谢大家,你的评论让我看到了正确的地方。

这条路让我怀疑:

/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../x86_64-linux-gnu/bin/as

我认为它必须是一个符号链接/usr/bin/as,但它暴露了它的/usr/x86_64-linux-gnu/bin完整副本/usr/bin- 不是最新的,因此带有错误链接的二进制文件。我不知道为什么整个 bin 目录的副本在那里并且被 gcc 用于支持/usr/bin.

删除后编译器运行良好/usr/x86_64-linux-gnu 编辑:在做同样的事情之前最好检查评论。

于 2013-07-18T14:05:50.873 回答