我升级了我的系统(到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
答案 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
后编译器正常运行。
编辑:在做同样的事情之前更好地检查评论。