0

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

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

现在有两件事。当我对下载的 IPopt 源执行“./configure”时,我得到:“configure: error: /bin/sh './configure' failed for Ipopt”

也像手册中建议的那样,调用“./configure -enable-doscompile=msvc”来告诉 cygwin 使用 windows 编译器给了我“configure: error: --enable-doscompile=mscv not supported”。

所以。基本上我无法安装 Ipopt。使用它似乎是不可能的,因为在我的 Win10 64 位上构建它的所有其他方法也失败了。手册似乎已过时,或者我没有找到正确的方法,希望你们中的一些人可以提供帮助。编译是相当新的东西,我很高兴学习。提前说。

4

1 回答 1

1

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

  • 开发:gcc
  • 开发:gfortran
  • 开发:pkg-config
  • 开发:颠覆
  • 存档:解压
  • 用途:补丁
  • 网址:wget
  • 实用工具:dos2unix

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

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


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

英特尔 Fortran 集成到 Visual Studio shell。运行这个外壳。从这个 shell 执行 cygwin.bat。检查链接的版本 ( link --version)。如果不是 microsoft 链接器,您可能需要link.exe从 Cygwin 文件夹中删除 Cygwin 文件。

请注意,任何其他 bash 终端(例如 Git Bash)可能会干扰。configure只有在运行脚本时您才会知道。它尝试从那些 bash 终端访问包。您可能不得不暂时将它们放在别处,因此 cygwin 找不到它们。

我知道您已经阅读了手册,所以您一定已经下载了 Ipopt 所需的第三方工具(asl、lapck、blas 和一个线性求解器)。

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

mkdir build  
cd build  
../configure --enable-msvc=MD  
make  
make  install
于 2018-07-01T21:56:01.007 回答