使用Cygwin安装和使用IPopt - 甚至更好的替代方案?

时间:2017-11-20 22:36:42

标签: compilation cygwin ipopt

我是优化领域的新手。虽然有些项目使用fmincon,现在正在寻找可在OpenSource中使用的替代方案,但最好在Python中以某种方式使用。因此我找到了IPopt。还有其他与fmincon同样好的建议吗?

我尝试通过编译来安装IPopt。我必须说,这似乎是一团糟。我尝试了所有版本,最终得到了最有前途的一个"使用MSVC ++编译器安装Cygwin"来自手册。因此我必须安装CYGwin并更改make.exe。完成。 将Visual Studio中的cl.exe(在我的案例中为Visual Studio 1)添加到Apth环境中。完成。 添加"调用"调用" C:\ Program Files(x86)\ Microsoft Visual Studio 14 \ VC \ vcvarsall.bat" "到cygwin.bat。完成。

现在有两件事。当我做" ./ configure"使用下载的IPopt源我得到:" configure:error:/ bin / sh' ./ configure' Ipopt"

失败了

同样在手册中建议调用" ./ configure -enable-doscompile = msvc"告诉cygwin使用windows编译器给我"配置:错误:--enable-doscompile = mscv不再支持。"

因此。基本上我无法安装Ipopt。使用它似乎是不可能的,因为构建它的所有其他方法也在我的Win10 64bit上失败了。似乎手册已经过时或者我没有找到完成它的核心方法,希望你们中的一些人可能会提供帮助。编译是一个相当新的东西,我很乐意学习。 Tahnks提前。

1 个答案:

答案 0 :(得分:0)

确保在Cygwin中安装了以下软件包。

  • 开发:gcc
  • 开发:gfortran
  • 开发:pkg-config
  • 开发:颠覆
  • 存档:解压缩
  • 实用程序:补丁程序
  • 网站:wget
  • 实用程序:dos2unix

假设您要构建64位,请在Cygwin.bat(位于Cygwin的安装位置的根目录中)中向cl.exe添加路径,以便可以从Cygwin使用msvc – call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\amd64\vcvars64.bat"(vcvarsall需要您指定体系结构版本)

您将需要Intel Fortran编译器。它与Parallel Studio一起提供。对学生,教师和开源贡献者免费。


.bash_profile(位于pathto/cygwin64/home/username/中)中添加以下行,以便ifort识别msvc链接程序(上面给出的路径应为msvc的link.exe)–
alias ifort='ifort -Qlocation,link,"C:/Program Files (x86)/Microsoft Visual Studio 12.0/VC/bin/amd64"'

英特尔Fortran已集成到Visual Studio Shell中。运行此shell。从此shell执行cygwin.bat。检查链接(link --version)的版本。如果不是Microsoft链接程序,则可能必须从Cygwin文件夹中删除Cygwin link.exe文件。

请注意,其他bash终端(例如Git Bash)可能会干扰。您将仅在运行configure脚本时才知道。它尝试从那些bash终端访问软件包。您可能需要暂时将它们放置在其他位置,以便cygwin找不到它们。

我了解您已经阅读了该手册,因此您必须下载了Ipopt所需的第三方工具(asl,lapck,blas和一个线性求解器)。

您现在可以运行(在Ipopt根文件夹中):

mkdir build  
cd build  
../configure --enable-msvc=MD  
make  
make  install