主要参考链接:
NLP非线性优化 - 古月居 (guyuehome.com)
Howto: Use CasADi in Cpp using Visual Studio - casadi/casadi GitHub Wiki (github-wiki-see.page)
一、安装Ipopt和CasADi
在https://github.com/coin-or/Ipopt/releases/tag/releases%2F3.13.3中下载VS2019预编译的Ipopt-3.13.3-win64-msvs2019-md.zip,并解压。
之后下载https://github.com/casadi/casadi/archive/refs/tags/3.5.5.zip同样解压至同一目录。并在casadi-3.5.5/下创建一个run.txt添加如下代码,并将其后缀改成.bat。
@echo Must be run in a prompt context that defines vcvars.
@echo For example in 'x64 Native Tools Command Prompt for VS 2019'
cmake -G "Visual Studio 16 2019" -A x64 -B build -DWITH_IPOPT=ON -DIPOPT_LIBRARIES:FILEPATH="C:/xxx/tools/Ipopt-3.13.3-win64-msvs2019-md/lib/ipopt.dll.lib" -DIPOPT_INCLUDE_DIRS:PATH="C:/xxx/tools/Ipopt-3.13.3-win64-msvs2019-md/include/coin-or" -DCMAKE_INSTALL_PREFIX:PATH="C:/xxx/tools/casadi-3.5.5"
cmake --build build --config Release
cmake --install build
把三个path路径改成自己对应放置的路径。
【注意】ipopt最好就用这个版本,我尝试过ipopt-3.14.10用同样的步骤配置失败。如果打不开可以在以下链接下载。
链接:https://pan.baidu.com/s/1y4SWLq8-GtiiY1W3_1usnw
提取码:gevm
在安装VS2019后使用Visual Studio 2019 Developer Command Prompt命令行模式,进入模拟的Unix环境,cd到CasADi目录下运行刚才的脚本run.bat则会进行编译,如果没有错误则会在其下面创建build目录,build/Release/里面有编译好的dll和lib。如果编译卡住就ctrl+C后重新编译。
二、VS2019的配置
在安装好后只需要进一步配置VS2019。
选择项目->属性,配置为Release、平台为x64。
1.调试->环境
PATH=C:\xxx\tools\casadi-3.5.5\casadi;C:\xxx\tools\Ipopt-3.13.3-win64-msvs2019-md\bin;%PATH%
2.vc++目录
包含目录
C:\xxx\tools\eigen-3.4.0
C:\xxx\tools\casadi-3.5.5\casadi
C:\xxx\tools\casadi-3.5.5\casadi\include
库目录
C:\xxx\tools\casadi-3.5.5\build\Release
C:\xxx\tools\casadi-3.5.5\casadi
3.C/C++->常规->附加包含目录
.\include
C:\xxx\tools\casadi-3.5.5
C:\xxx\tools\casadi-3.5.5\casadi\core
C:\xxx\tools\casadi-3.5.5\build\casadi\core\runtime
C:\xxx\tools\casadi-3.5.5\build
4.链接器->输入->附加依赖项
casadi.lib
三、测试
把casadi-3.5.5\docs\examples\cplusplus中的rocket_ipopt.cpp加入项目中。确保没有其他main函数后,编译运行即可。
出现上述结果,casadi配置成功。
可以用来编写求解自己的问题了!