使用 D 编译器时无法打开共享目标文件

使用 D 编译器时无法打开共享目标文件

我有LDC2环球发展中心从源代码编译并一直工作到一个月前。什么都没有改变,除了我不记得在终端中设置以使 ldc2 和 gdc 工作的变量。

尝试编译 D 源代码时出现以下错误;与 gdc ( $ /home/Code/D/gdc/Bin/usr/local/bin/gdc -o t4 t4.d):
/home/Code/D/gdc/Bin/usr/local/bin/../libexec/gcc/x86_64-unknown-linux-gnu/4.4.5/cc1d: error while loading shared libraries: libmpfr.so.1: cannot open shared object file: No such file or directory

对于 ldc2 ( /home/Code/D/ldc2/bin/ldc2 -o t4 t4.d):
/home/Code/D/ldc2/bin/ldc2: error while loading shared libraries: libconfig++.so.8: cannot open shared object file: No such file or directory

我不记得它是否只是对 PATH 的补充或对 DFLAGS 的补充。有任何想法吗?

答案1

这里你甚至无法运行编译器可执行文件,因为它找不到它需要的库。gdc正在寻找libmpfr.so.1并且ldc2正在寻找libconfig++.so.8

如果这些库仍然存在于您的系统上,也许在 中/home/Code/D/gdc/Bin/usr/local/lib,您可以将该目录添加到LD_LIBRARY_PATH环境变量中(在大多数 unice 上;在 Mac OS X 上,该变量称为DYLD_LIBRARY_PATH)。

LD_LIBRARY_PATH=/home/Code/D/gdc/Bin/usr/local/lib gdc …

您可能想要编写包装脚本来运行gdcldc2,或者将其放入您的~/.profile

export LD_LIBRARY_PATH=/home/Code/D/gdc/Bin/usr/local/lib

如果这些库在系统升级中出现/usr/lib并消失,您必须恢复所需的版本,或者为新版本的库重新编译 D 工具。

相关内容