我再次尝试在运行 Irix 6.5 版本的 SGI Indy 计算机上安装编译器,这一次,我发现一个文件包含我认为需要的所有库。当我编译时,我收到一条错误消息
cc1: rld: Fatal Error: Cannot Successfully map soname 'libmpc.so.4' under any of the filenames /opt/local/gcc473/lib/libmpc.so.4:/usr/lib32/libmpcso.4
我安装了预安装的编译器这里
我还将它安装到另一个没有安装 Irix 操作系统的驱动器上,这样我就有足够的空间,所以里面没有 /usr 或 /etc 目录。
感谢您的帮助,-rjhwinner03
答案1
你说“安装编译器”,我假设你不是从源代码构建它。我的建议是从源代码构建:
从 gnu.gcc.org 镜像站点下载 gcc 源 tarball。您将下载类似gcc-4.9.4.tar.gz
或 的内容gcc-4.9.4.tar.bz2
。获取您需要的所有版本...
重要提示:例如,如果您的 IRIX 6.5 有 gcc-3.2.3,则获取并开始使用 gcc-3.4.6,它是 gcc-3 的最后一个版本。一旦构建完成,就可以使用它来构建最后的 gcc-4.xx 版本;然后用它来构建最后版本的 gcc-5.xx 等等。
GCC 使用的 3 大依赖项是
gmp
GNU 多精度算术库: https://gmplib.org/mpfr
https://www.mpfr.org/mpfr-3.1.6/mpc
http://www.multi precision.org/mpc/download.html
首先构建 gmp,因为其他一切都依赖于此,然后构建 mpfr-3.1.6;然后是您缺少的 mpc-1.0.3 。 不要获取 mpfr-4.x,您在 IRIX 上不需要它,它太新了,可能会给您带来问题。
对于任何一个,./configure --help
在执行之前先查看构建选项列表
- 。/配置
- 。/制作
- ./进行检查
- ./进行安装
例子:
tar -xf gmp-6.1.2.tar.bz2
cd gmp-6.1.2/
./configure --help
./configure --prefix=/opt/gmp-6.1.2
./make
./make check
./make install
export LD_LIBRARY_PATH=/opt/gmp-6.1.2/lib:$LD_LIBRARY_PATH
tar -xf mpfr-3.1.6.tar.gz
cd mpfr-3.1.6/
./configure --help
./configure --prefix=/opt/mpfr-3.1.6 --with-gmp=/opt/gmp-6.1.2
./make
./make check
./make install
export LD_LIBRARY_PATH=/opt/mpfr-3.1.6/lib:$LD_LIBRARY_PATH
tar -xf mpc-1.1.0.tar.gz
cd mpc-1.1.0/
./configure --help
./configure --prefix=/opt/mpc-1.1.0 --with-gmp=/opt/gmp-6.1.2 --with-mpfr=/opt/mpfr-3.1.6
./make
./make check
./make install
for each gcc-#.x.x do the same process, using
LD_LIBRARY_PATH=/opt/gmp-6.1.2/lib:/opt/mpfr-3.1.2/lib:/opt/mpc-1.1.0/lib
./configure --prefix=/opt/gcc-#.x.x --with-gmp=/opt/gmp-6.1.2 --with-mpfr=/opt/mpfr-3.1.6 --with-mpc=/opt/mpc-1.1.0
./make
./make check
./make install
then be sure to set
LD_LIBRARY_PATH=/opt/gcc-#.x.x/lib64:/opt/gcc-#.x.x/lib:$LD_LIBRARY_PATH
PATH=/opt/gcc-#.x.x/bin:$PATH
before building the next version of gcc.
https://gcc.gnu.org/mirrors.html或者https://www.gnu.org/prep/ftp.html然后选择最接近的版本,然后在发行版下查找 gcc tarball。
mpc 可能比 irix 更接近 linux,这就是为什么你没有它。