gcc:加载共享库时出错 - >查找错误的库版本

时间:2013-07-18 12:38:25

标签: c++ c ubuntu gcc debian

我升级了我的系统(到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在哪里获取要使用的共享库的信息?

THX

1 个答案:

答案 0 :(得分: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 后编译器正常运行。 编辑:在做同样的事情之前更好地检查评论。