文章目录
- 1、 背景
- 2、 配置流程
- 3、测试
- THE END
1、 背景
\qquad
本科研狗最近手头有个非线性规划模型需要求解,因为Ipopt是一款开源的NLP求解器,所以想要使用一下下。于是直接搜Ipopt官网,果然令人惊喜地列出了安装教程,但对于Windows用户就十分不友好了。
\qquad
所以去Github上看,找到了官方开出的动静态链接库和源码【遂狂喜】,这比官网列出的安装一堆东西之后自己编译要省事省力多了。有兴趣的小伙伴可以按照官网操作试试,估计1,2天搞不通… …
2、 配置流程
\qquad 其实这东西只要了解程序运行原理,学过动静态库的生成和连接,其实很快就可以搞定。在这里列出一些操作步骤和注意事项。
- 首先从Github上下载Asset中的四个文件,前两个中包含release和debug模式下的库文件和头文件,后两个是源码(这两个好像一样,下一个好像也可以)
- 下面以-md(release 模式下)的配置为例介绍。
- 解压Ipopt-3.14.12-win64-msvs2019-md,之后包含下述文件:
- 新建一个VS空项目之后,右键单击项目之后选择属性→调试→环境:
\qquad 这里的环境填入PATH=
Ipopt-3.14.12-win64-msvs2019-md中bin
文件夹的地址, e.g.,PATH=E:\ipopt\Ipopt-3.14.12-win64-msvs2019-md\Ipopt-3.14.12-win64-msvs2019-md
- 之后选择C++→常规→附加包含目录:
\qquad 这里的附加包含目录填入Ipopt-3.14.12-win64-msvs2019-md中include\coin-or
文件夹的地址, e.g.,E:\ipopt\Ipopt-3.14.12-win64-msvs2019-md\Ipopt-3.14.12-win64-msvs2019-md\include\coin-or
- 之后选择链接器→常规→附加库目录,将静态库的地址填入
\qquad 这里的附加库目录填入Ipopt-3.14.12-win64-msvs2019-md中lib
文件夹的地址, e.g.,E:\ipopt\Ipopt-3.14.12-win64-msvs2019-md\Ipopt-3.14.12-win64-msvs2019-md\lib
- 之后选择链接器→常规→输入→附加依赖项,将静态库文件输入,
\qquad 这里的附加库目录填入Ipopt-3.14.12-win64-msvs2019-md中lib
文件夹下所有静态库文件, e.g.,
E:\ipopt\Ipopt-3.14.12-win64-msvs2019-md\Ipopt-3.14.12-win64-msvs2019-md\lib\coinmumps.dll.lib
E:\ipopt\Ipopt-3.14.12-win64-msvs2019-md\Ipopt-3.14.12-win64-msvs2019-md\lib\ipopt.dll.lib
E:\ipopt\Ipopt-3.14.12-win64-msvs2019-md\Ipopt-3.14.12-win64-msvs2019-md\lib\ipoptamplinterface.dll.lib
E:\ipopt\Ipopt-3.14.12-win64-msvs2019-md\Ipopt-3.14.12-win64-msvs2019-md\lib\sipopt.dll.lib
\qquad 至此,配置结束!下面测试一下。
3、测试
\qquad
将公Github下载的源码解压,找到examples\Cpp_example文件夹中的cpp示例文件:
\qquad
将.cpp
和.hpp
文件拷贝到VS工程里面,之后运行,可以得到下图所示的结果。
\qquad
说明配置成功,可以测试NLP模型啦~~