因为要用UMFPACK,所以要安装SuiteSparse库,而GMP和MPFR是SuiteSparse库的依赖,这俩又不能直接Cmake编译,又学习了一种新的手段,记录一下。
1、GMP安装
参考教程:windows环境下的gmp大数运算库的配置(visual studio 2019 + gmp-6.2.0 + msys)
①msys安装:这个在参考教程中已有详细描述(msys下载地址)
官网上下载这个包:
然而,这个msys.zip的解压可能存在问题:
如果选择跳过,那么解压后的msys文件夹会不完整:
选择把它复制出来,就完整了:
msys的完整文件夹如下:
②GMP安装:下载gmp-6.3.0.tar.xz(GMP下载地址)
在msys文件夹下的home下建立一个新的文件夹,把gmp-6.3.0.tar.xz放进去:
在msys文件夹下双击运行msys.bat:
输入如下命令,解压压缩包并进入解压后的文件夹:
tar -xvf gmp-6.3.0.tar.xz
cd ./gmp-6.3.0
配置命令如下:
./configure --build=x86_64-w64-mingw32 --host=x86_64-w64-mingw32 --disable-static --enable-shared --enable-cxx --prefix=D:/GMP/msys/home/QiJing/gmp_prefix
强烈建议指定安装路径 --prefix:D:/GMP/msys/home/QiJing/gmp_prefix 该路径可以自定义,如果不指定,会直接安装 D:/GMP/msys/home/QiJing/gmp-6.3.0 下面,会很混乱,而且后面安装 MPFR 的时候找不到gmp在哪里 /(ㄒoㄒ)/~~
配置成功显示:
配置完成后,输入安装命令:
make && make check && make install
安装成功显示(需要挺长时间的):
安装成功后,可在指定的安装路径(D:/GMP/msys/home/QiJing/gmp_prefix)下看到以下文件:
最后添加环境变量,不添加环境变量,后面装MPFR的时候会报错找不到libgmp-10.dll文件
2、MPFR安装
MPFR的安装与GMP时类似的,不过MPFR依赖于GMP。
下载mpfr-4.2.1.tar.xz(mpfr下载地址)
同样,把mpfr-4.2.1.tar.xz,放到 D:/GMP/msys/home/QiJing 路径下,双击运行msys.bat,输入解压和进入命令:
tar -xvf mpfr-4.2.1.tar.xz
cd mpfr-4.2.1
配置命令如下,这里同样指定了安装路径(D:/GMP/msys/home/QiJing/mpfr_prefix),–with-gmp 设置指定了GMP的安装路径:
./configure --build=x86_64-w64-mingw32 --host=x86_64-w64-mingw32 --disable-static --enable-shared --prefix=D:/GMP/msys/home/QiJing/mpfr_prefix --with-gmp=D:/GMP/msys/home/QiJing/gmp_prefix
配置成功如下:
输入make开始安装,报错了哈哈:
不太理解,明明指定了gmp.h就在D:/GMP/msys/home/QiJinggmp_prefix/include下面怎么就找不到了呢,于是我找到了mpfr-impl.h(D:/GMP/msys/home/QiJing/mpfr-4.2.1/src路径下)的96行,将 #include “gmp.h” 改为绝对路径:
再make的时候,还会出现一处导入gmp.h找不到的地方:
找到mpfr.h(D:/GMP/msys/home/QiJing/mpfr-4.2.1/src路径下)的53行,将 #include “gmp.h” 改为绝对路径:
最后输入安装命令就可以安装成功了:
make && make install
安装成功后,可在指定路径 D:/GMP/msys/home/QiJing/mpfr_prefix 下看到以下文件:
GMP和MPFR安装好后,作为SuiteSparse库的依赖配置如下,Configure成功~