本文主要介绍在Ubuntu20.04中安装Ipopt库的流程,及过程报错的解决方法,已经有很多关于Ipopt安装的博客,但经过我的测试,很多都失效了,因此,经过探索,我找到可流畅的安装Ipopt的方法,现总结成本篇博客。
1、安装Install CPPAD & Fortran
在终端执行以下语句,安装cppad
sudo apt-get install cppad gfortran
–
2、下载Ipopt-3.12.8
通过以下链接从官网下载Ipopt-3.12.8,
https://www.coin-or.org/download/source/Ipopt/
将下载的Ipopt-3.12.8.zip复制到准备存储ipopt库的地方,这里我放到了主目录下,并提取至此处(也就是解压),得到名为ipopt-3.12.8的文件夹
3、分步下载所需的库
(1)、双击进入ipopt-3.12.8文件夹,在空白处,右键选择在终端打开
(2)、依次输入以下指令来进入Blas目录下,并下载Blas
cd ThirdParty/Blas/
./get.Blas
(3)、依次输入以下指令来进入Lapack目录下,并下载Lapack
cd ../Lapack
./get.Lapack
(4)、依次输入以下指令来进入Mumps目录下,并下载Mumps
cd ../Mumps
./get.Mumps
不出意外的话,这一步会执行失败,如下图所示,经过测试原因是get.Mumps文件中写的下载地址已经失效了
我找到了该下载网址的可用替代网址,在Mumps目录下找到并打开get.Mumps的文件,将设定下载链接的以下语句(大约在第31行)
$wgetcmd http://mumps.enseeiht.fr/MUMPS_${mumps_ver}.tar.gz
修改为以下语句,并保存
$wgetcmd http://graal.ens-lyon.fr/MUMPS/MUMPS_${mumps_ver}.tar.gz
然后再次在之前的终端下执行 ./get.Mumps指令,就可以正常下载了
(5)、依次输入以下指令来进入Metis目录下,并下载Metis
cd ../Metis
./get.Metis
不出意外的话,这一步同样会执行失败,因为get.Metis文件中写的下载地址好像也失效了…
但遗憾的是,我没有找到该网址的可用替代网址,因此不能通过上一步那样修改网址的方法来解决该问题。
不过,我找到了这一步想要下载的资源包,我会将其放在附件中,并绑定为该博客的绑定资源,方便大家免费获取。
下载后会得到以下压缩包
将其复制到Metis文件夹下,并修改该目录下的get.Metis文件,将以下两行语句注释掉(大概分为位于24和26行),并保存文件。如下图所示
rm -f metis-4.0.3.tar.gz
#$wgetcmd http://glaros.dtc.umn.edu/gkhome/fetch/sw/metis/OLD/metis-4.0.3.tar.gz
然后再次在之前的终端下执行 ./get.Metis指令,就可以正常进行此步了
–
4、编译安装
在Ipopt-3.12.8文件夹下,右键选择在终端打开,然后在打开的终端下,依次执行以下4条语句
mkdir build && cd build
../configure
make -j4
make install
5、将安装文件复制到特定目录
在Ipopt-3.12.8文件夹下,右键选择在终端打开,然后在打开的终端下,依次执行以下3条语句
cd build/
sudo cp -a include/* /usr/include/.
sudo cp -a lib/* /usr/lib/.
到这里Ipopt的安装流程就结束了
6、验证是否安装成功
在下图所示的目录下,右键选择在终端打开,然后执行sudo make指令
sudo make
然后使用以下指令,执行生成的可执行文件,若出现类似于以下的内容,说明Ipopt已经成功安装了
./cpp_example