【发布时间】:2011-06-13 13:50:53
【问题描述】:
我的系统管理员最近在 /lusr/opt/gcc-4.4.3 中安装了新版本的 GCC。我测试如下:
mike@canon:~$ cat test.c
int main(){
return 0;
}
mike@canon:~$ gcc test.c
/lusr/opt/gcc-4.4.3/libexec/gcc/i686-pc-linux-gnu/4.4.3/cc1: error while loading shared libraries: libmpfr.so.1: cannot open shared object file: No such file or directory
在通知我的系统管理员这件事后,他说将/lusr/opt/mpfr-2.4.2/lib:/lusr/opt/gmp-4.3.2/lib 添加到我的LD_LIBRARY_PATH。执行此操作后,我收到以下错误:
mike@canon:~$ gcc test.c
cc1: error: unrecognized command line option "-L/lusr/opt/mpfr-2.4.2/lib"
首先,我的系统管理员并不完全确定这是最好的解决方法(尽管他确实说这对他有用...),那么有更好的解决方案吗?
其次,为什么我会收到来自cc 的链接器错误,我该如何解决?
一些可能有用的信息:
mike@canon:~$ env | grep mpfr
OLDPWD=/lusr/opt/mpfr-2.4.2/lib
LD_LIBRARY_PATH=/lusr/opt/mpfr-2.4.2/lib:/lusr/opt/gmp-4.3.2/lib:
mike@canon:~$ echo $LDFLAGS
(the above is a blank line)
【问题讨论】:
-
@Peter:显然,Intel 上的 32 位 Linux - 见证
cc1路径中使用的路径名。如果您问的是哪个 Linux 发行版,那是一个不同的问题——尽管它不应该是一个关键问题。 -
@Jonathan Leffler:鉴于他的安装被破坏了,也许这不应该被信任。
-
@Peter:也许不会……拥有这些信息并没有什么坏处。但是编译器现在运行得足够好,操作系统必须与 Linux 足够兼容,以至于它可能是 Linux 的某种变体。最终,它不会有太大的不同——他可能需要一个重建的 GCC——但包括版本和平台信息通常是个好主意。
标签: c gcc compiler-construction path ldflags