【发布时间】:2013-07-17 10:00:22
【问题描述】:
我升级了我的系统(到 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、binutils、libc6等解决,但问题依然存在。
我如何告诉 gcc 使用正确的共享库版本? / gcc 从哪里获取要使用的共享库的信息?
谢谢
【问题讨论】:
-
gcc 不会自行寻找 2.22。您使用的其他一些库链接到 2.22。
-
你知道有什么方法可以进一步调查吗?必须是系统库..我试图编译的代码是一个没有任何依赖关系的单行hello world。
-
gcc 执行失败。没有办法解决这个问题。您系统中的某些内容已损坏。我对ubuntu不熟悉。检查或重新安装 gcc 和 binutils 包。
-
不要在库之间创建符号链接。库的主要版本特别更改,因为链接到新版本库的二进制文件由于不兼容的更改而无法与旧库一起使用。看起来要么是您的安装搞砸了,要么是构建软件包的人搞砸了。重新安装,直到问题消失。