代码之家  ›  专栏  ›  技术社区  ›  Mike

为什么gcc使用“无法识别的命令行选项”-l/lusr/opt/mpfr-2.4.2/lib“失败?

  •  3
  • Mike  · 技术社区  · 15 年前

    我的系统管理员最近在/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)
    
    2 回复  |  直到 14 年前
        1
  •  1
  •   Jonathan Leffler    14 年前

    我建议您的系统管理员需要将gmp和mpfr库从构建计算机安装到您计算机上的同一位置。(还有您可能还需要的mpc库)或者,系统管理员需要安装gcc的重建版本(最好是4.5.2版,因为它是(afaik)当前版本),并为gmp和mpfr库在您的计算机上的安装位置设置正确的设置。

    不需要设置ld_library_path来使用gcc。如果需要这样做,则表示它不是为运行它的计算机而构建的。缺少密钥库。

    要进一步进行调试,可能需要使用:

    gcc -v test.c
    

    这将显示执行的命令行。不需要 -L 传递给阶段1编译器的选项(影响程序链接的方式)。

        2
  •  0
  •   Nick Dixon    15 年前

    这看起来像是gcc解析的错误参数(它不应该抱怨 -一 )中。

    你能试着设置一下吗

    LD_LIBRARY_PATH=\ /lusr/opt/mpfr-2.4.2/lib:/lusr/opt/gmp-4.3.2/lib
    

    所以在mpfr库路径之前有一个前导空格?