【问题标题】:Installing and using IPopt with Cygwin - or even better alternative?使用 Cygwin 安装和使用 IPopt - 还是更好的选择?
【发布时间】:2017-11-20 22:36:41
【问题描述】:

我是优化领域的新手。不过,用 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 位上构建它的所有其他方法也失败了。看来手册已经过时了,或者我没有找到正确的方法,希望你们中的一些人可以提供帮助。编译是相当新的东西,我很高兴学习。 提前说。

【问题讨论】:

  • 我还发现了一个似乎正在使用它的用户。不幸的是,我无法问他是如何做到的。因此,我希望有人可以在这里提供帮助。 @Ingrid 让它工作了:stackoverflow.com/questions/46609929/…

标签: compilation cygwin ipopt


【解决方案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)–
alias ifort='ifort -Qlocation,link,"C:/Program Files (x86)/Microsoft Visual Studio 12.0/VC/bin/amd64"'

英特尔 Fortran 已集成到 Visual Studio 外壳中。运行这个外壳。从这个 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-13
    • 2012-11-11
    • 2011-10-27
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    • 2019-03-15
    相关资源
    最近更新 更多