安装过程

1、下载Ipopt-3.12.7包

点此下载


2、安装依赖

sudo apt-get install libblas3 libblas-dev liblapack3 liblapack-dev gfortran build-essential cppad gcc g++

3、安装HSL

1)去注册并下载源码

2)解压缩后重命名为coinhsl,放到Ipopt-3.12.7/ThirdParty/HSL/coinhsl目录下

4、安装第三方库

cd Ipopt-3.12.7/ThirdParty/ASL
./get.ASL
cd ../Blas
./get.Blas
cd ../Lapack
./get.Lapack
cd ../Metis
./get.Metis
cd ../Mumps
./get.Mumps
cd ../../

如执行./get.Mumps遇到无法下载的情况,可以直接拷贝最后蓝奏云盘内的Mumps文件夹覆盖原来的文件夹即可。

5、编译

mkdir build
cd build
#使用intel编译器
../configure --prefix=/usr/local/ ADD_CFLAGS=-fopenmp ADD_FFLAGS=-fopenmp ADD_CXXFLAGS=-fopenmp --with-blas="-L$MKLROOT/lib/intel64 -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lm"
#或者其他
../configuremake -j4

6、测试是否编译成功

make test#成功显示如下:
Testing AMPL Solver Executable...Test passed!
Testing C++ Example...Test passed!
Testing C Example...Test passed!
Testing Fortran Example...Test passed!

7、安装

sudo make install

8、防止报错

cd ~/Ipopt-3.12.7
$ sudo cp -a include/* /usr/include/.
$ sudo cp -a lib/* /usr/lib/.
sudo ldconfig

有些版本在安装过程中已经执行了这个操作,中间目录可以不复制,但是一定要运行最后一句

9、测试案例

测试案例下载

解压后运行

mkdir build
cd build
cmake ..
make
./solver

如果成功则显示下面的解

自用的ipopt3.12.7安装相关的包打包到一起:

https://wwd.lanzoue.com/iGkPJ0enmdmf
密码:9q84

安装过程中遇到的错误

1、cppad错误

/home/robot/Desktop/ipopt_example-master/example.cpp:1:10: fatal error: cppad/ipopt/solve.hpp: No such file or directory1 | #include <cppad/ipopt/solve.hpp>

此种错误有两个原因,一个是cppad没装,这种最好解决,直接安装即可

sudo apt-get install cppad

第二种可能是ipopt没有安装成功,再重新尝试上述过程

2、sed:-e 报错

sed:-e 表达式 #1,字符 10:未终止的“s”命令

不要用自己配置的conda虚拟环境,可能会出现这个错误

3、GLIBCXX报错

libstdc++.so.6: version `GLIBCXX_3.4.29' not found

解决类似 /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21’ not found 的报错

4、libmkl_intel_lp64.so.2报错

/usr/bin/ld: warning: /usr/lib/gcc/x86_64-linux-gnu/7/libstdc++.so: unsupported GNU_PROPERTY_TYPE (5) type: 0xc0010001
/usr/bin/ld: warning: /usr/lib/gcc/x86_64-linux-gnu/7/libstdc++.so: unsupported GNU_PROPERTY_TYPE (5) type: 0xc0010002
/usr/bin/ld: warning: libmkl_intel_lp64.so.2, needed by /usr/local/lib/libipopt.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libmkl_sequential.so.2, needed by //usr/local/lib/libcoinhsl.so.1, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libmkl_core.so.2, needed by //usr/local/lib/libcoinhsl.so.1, not found (try using -rpath or -rpath-link)
//usr/local/lib/libcoinhsl.so.1:对‘dswap_’未定义的引用
/usr/local/lib/libipopt.so:对‘dpotrf_’未定义的引用
/usr/local/lib/libipopt.so:对‘dgemm_’未定义的引用
//usr/local/lib/libcoinhsl.so.1:对‘dtpmv_’未定义的引用
/usr/local/lib/libipopt.so:对‘dnrm2_’未定义的引用
/usr/local/lib/libipopt.so:对‘dscal_’未定义的引用
//usr/local/lib/libcoinhsl.so.1:对‘dtrsv_’未定义的引用
//usr/local/lib/libcoinhsl.so.1:对‘sswap_’未定义的引用
/usr/local/lib/libipopt.so:对‘dpotrs_’未定义的引用
/usr/local/lib/libipopt.so:对‘dppsv_’未定义的引用
/usr/local/lib/libipopt.so:对‘dtrsm_’未定义的引用
//usr/local/lib/libcoinhsl.so.1:对‘stpsv_’未定义的引用
//usr/local/lib/libcoinhsl.so.1:对‘dtrmm_’未定义的引用
/usr/local/lib/libipopt.so:对‘daxpy_’未定义的引用
/usr/local/lib/libipopt.so:对‘dgetrf_’未定义的引用
//usr/local/lib/libcoinhsl.so.1:对‘ssyrk_’未定义的引用
//usr/local/lib/libcoinhsl.so.1:对‘dtpsv_’未定义的引用
/usr/local/lib/libipopt.so:对‘dcopy_’未定义的引用
/usr/local/lib/libipopt.so:对‘idamax_’未定义的引用
/usr/local/lib/libipopt.so:对‘pardiso_’未定义的引用
//usr/local/lib/libcoinhsl.so.1:对‘isamax_’未定义的引用
//usr/local/lib/libcoinhsl.so.1:对‘saxpy_’未定义的引用
//usr/local/lib/libcoinhsl.so.1:对‘sgemm_’未定义的引用
/usr/local/lib/libipopt.so:对‘dsyrk_’未定义的引用
/usr/local/lib/libipopt.so:对‘dasum_’未定义的引用
/usr/local/lib/libipopt.so:对‘dsyev_’未定义的引用
//usr/local/lib/libcoinhsl.so.1:对‘dtrmv_’未定义的引用
/usr/local/lib/libipopt.so:对‘dgetrs_’未定义的引用
/usr/local/lib/libipopt.so:对‘pardisoinit_’未定义的引用
//usr/local/lib/libcoinhsl.so.1:对‘strsm_’未定义的引用
/usr/local/lib/libipopt.so:对‘ddot_’未定义的引用
//usr/local/lib/libcoinhsl.so.1:对‘sgemv_’未定义的引用
/usr/local/lib/libipopt.so:对‘dsymv_’未定义的引用
//usr/local/lib/libcoinhsl.so.1:对‘scopy_’未定义的引用
/usr/local/lib/libipopt.so:对‘dgemv_’未定义的引用
collect2: error: ld returned 1 exit status
CMakeFiles/solver.dir/build.make:96: recipe for target 'solver' failed
make[2]: *** [solver] Error 1
CMakeFiles/Makefile2:82: recipe for target 'CMakeFiles/solver.dir/all' failed
make[1]: *** [CMakeFiles/solver.dir/all] Error 2
Makefile:90: recipe for target 'all' failed
make: *** [all] Error 2

把libmkl_intel_lp64.so.2文件所在路径写入.bashrc文件当中

export LD_LIBRARY_PATH=/opt/intel/oneapi/mkl/2022.2.0/lib/intel64

https://github.com/UMich-BipedLab/Cassie_CFROST
https://github.com/qianqian121/ipopt_example
https://www.coin-or.org/CppAD/Doc/doxydoc/html/index.html

Ipopt-3.12.7在ubuntu18.04安装相关推荐

  1. ubuntu18.04 安装qt5.12.8及环境配置的详细教程

    这篇文章主要介绍了ubuntu18.04 安装qt5.12.8及环境配置的教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下 环境 系统: ...

  2. Ubuntu18.04安装cuDNN和Tensorflow的正确姿势

    文章目录 Ubuntu18.04安装cuDNN和Tensorflow的正确姿势 一.检查NVIDIA驱动是否安装成功 二.检查CUDA是否安装成功 三.安装cuDNN 1. 确定版本 2. 下载安装包 ...

  3. Ubuntu18.04安装ax200网卡驱动以及更新内核

    Ubuntu18.04安装ax200网卡驱动以及更新内核 参考资料:https://zhangyiming748.github.io/2019/12/05/useAX200OnUbuntu/ 原来的网 ...

  4. Ubuntu18.04安装evo及简单使用方法

    做slam常常会测试算法的指标,那么evo工具自然是很好的选择,以下为Ubuntu18.04安装evo评估工具的方法及简单使用方法: 一.安装流程: 1.设置优先级,数字越大默认优先级越高,将pyth ...

  5. Ubuntu18.04安装EVO工具

    一 安装 (笔者通过下载源码安装evo1.1.2,python版本为2,无需切换到3 亲测有效!) python --version //确认当前python版本是否为2,若为3建议手动切换到2在进行 ...

  6. Ubuntu18 04安装QQ

    Ubuntu18.04安装QQ Created time: December 20, 2022 5:12 PM Last edited time: December 20, 2022 6:15 PM ...

  7. Ubuntu18.04安装Carla 记录

    官方文档:CARLA Simulator 方式一:简单快速安装,该方式有缺陷.需要使用虚幻引擎编辑器的高级定制和开发选项不可用. Advanced customization and developm ...

  8. Ubuntu18.04安装Xfce桌面与VNC远程工具

    1. Xfce桌面的安装 Xfce是一款轻量级的桌面环境,运行在类Unix操作系统 (如Linux.FreeBSD 和 Solaris)上,界面清爽美观且对用户友好. 在安装Xfce前需要更新一下系统 ...

  9. Ubuntu18.04 安装后应该做的事(更新中)

    Ubuntu18.04 安装后应该做的事 1.更新源 找到Software & Updates,将源更新为阿里云的源 在Other Software里将Canonical Partners勾上 ...

最新文章

  1. 2021-11-05 虚拟机centos7更改root与home分区大小
  2. 怎么查到mysql的账号密码是什么_怎么查到mysql的账号密码是什么?
  3. 自动分号插入 ASI
  4. Objc基础学习记录5
  5. 牛客16464 神奇的幻方
  6. 必须知道的app测试与web测试的区别
  7. open jdk 证书 问题
  8. 测试用例的设计方法及例子
  9. corpus iweb_智能网络语料库iWeb及其在英语教学中的应用
  10. 计算机关机界面卡住,win7关机卡死在正在关机界面
  11. 机器学习中的数学——优化技术:参数初始化策略
  12. 技术人员成长路线感悟
  13. 程序员分级-八个等级
  14. 腾讯起诉抖音播放《王者荣耀》获赔 60 万
  15. Kotlin 协程是个什么东西?
  16. SAP系统接口对接历险记
  17. 推荐9个适合Python开发的IDE。
  18. Matlab中属性 get 方法的使用
  19. Ansible(未完待续)
  20. symfony ajax,Symfony2 AJAX登录

热门文章

  1. 电脑桌面悬浮窗记事本_安卓悬浮窗便签记事本怎么添加?求安卓手机悬浮窗便签...
  2. 【PCI】ARM架构——PCI总线驱动、RC驱动、Host Bridge驱动、xilinx xdma ip驱动(八)
  3. 再谈韦伯/费希纳定律以及我对数学公式的理解
  4. 还在用chatGPT聊天?《元宇宙2086》已开始用AIGC做漫画连载了!
  5. 【HEC-RAS水动力】HEC-RAS 1D基本原理(恒定流及非恒定流)
  6. python 字典处理_python中的字典及其操作
  7. 基于Python的结构力学位移法编程求解
  8. 写代码应该用什么字体?
  9. 从局域网监控到广域网实时监控的实现
  10. 51单片机学习笔记(郭天祥版)(1)——单片机基础和点亮LED灯