Ipopt 在linux系统中到安装和使用都是挺简单的。只要根据网站上步骤一步一步来就可以了。参考:
http://www.coin-or.org/Ipopt/documentation/node2.html
备注:我没用过mingw+msys ,本来想把ipopt安装在windows下的。结果作为菜鸟的我折腾了两天硬是没有编译成功。所以像我一样到菜鸟们还是用Linux节省下时间吧。想要学习的人除外。
接下来就是根据已有的实例hs071_cpp来创建自己的project了。
(1)假设你是在ipopt的安装文件主目录下建了build文件夹,并且在其中编译得到了编译文件。
(2)在YOUR_IPOPT_DIR/build/Ipopt/examples/ 下建一个文件夹,就叫WDS(water distribution system)吧。
(3)拷贝hs071_cpp下的所有文件到你的目录WDS下(hs071_nlp.hpp hs071_nlp.cpp hs071_main.cpp Makefile )
( 4 ) 修改hs071的名字和实现来解决自己到问题。
(5) 修改Makefile。 如果使用了额外的library。请在ADDLIBS下添加lib path,在ADDINCFLAGS下添加该Library到include path
(6) 如果不幸的你遇到很多d字母开头的变量undefined。请在ADDLIBS后面添加:`cat YOUR_IPOPT_DIR/build/share/coin/doc/Ipopt/ipopt_addlibs_cpp.txt` 。 在CXXLINKFLAGS后面添加 -Wl,--no-as-needed
(7) make 一下,编译应该是没问题了。