跳转到内容

GLPK/Windows

来自维基教科书,开放的世界,开放的书籍

本页面解释了如何从源代码为 Windows 操作系统编译 GLPK。并且,如果您愿意,还可以了解如何链接到生成的 DLL 运行时库。如果您遇到困难,请务必查阅编译器文档。

预编译选项:作为替代方案,GLPK 也作为 预编译的 Windows 可执行文件 提供。这明显比从头开始编译更方便。但是,手动构建允许您自定义构建配置,以便生成的库可以更好地匹配您的环境和需求。

Microsoft Visual C++ (MSVC) 编译器

[编辑 | 编辑源代码]

需要以下软件包

Visual Studio 2010 Service Pack 1 (SP1) 删除了 SDK 64 位编译器 [1]。要安装 64 位编译器,请按照以下步骤操作

检查文件 C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64\vcvars64.bat 是否存在。如果不存在,请使用以下内容创建它

CALL "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64

ftp://ftp.gnu.org/gnu/glpk/GNU 镜像 中下载源代码分发版。使用以下命令提取存档WinZip或类似命令。

使用 批处理文件 构建 GLPK,并提供了适用于不同 Windows 版本的批处理文件。64 位 Windows 用户应导航到w64子目录,而 32 位 Windows 用户应导航到w32子目录。

名为Build_GLPK_with_VC10.bat的批处理文件将 GLPK 构建为静态库,而名为Build_GLPK_with_VC10_DLL.bat的批处理文件将 GLPK 构建为动态链接库。通常情况下,最好构建 动态链接库

在批处理文件中Build_GLPK_with_VC10_DLL.bat,以下行指定了 Visual C++ 的安装位置

set HOME="C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC"

如有必要,请通过编辑文件调整此路径。所有 Windows 系统上都提供 记事本 编辑器。

您可以通过从 Windows 文件资源管理器 中双击批处理文件来启动构建过程。或者,您也可以使用命令 shell,选择运行开始菜单,在对话框中键入 cmd,然后按“确定”。在这种情况下,首先导航到您提取 GLPK 的路径 - 在本例中,我们假设C:\temp,GLPK 4.45,以及 64 位 Windows

> cd C:\temp\glpk-4.45\w64

然后执行所需的构建脚本 - 在进行任何必要的修改(参见上文)之后。对于动态链接库,调用

> Build_GLPK_with_VC10_DLL.bat

对于静态库,请改为调用 Build_GLPK_with_VC10.bat

批处理文件还会运行测试模型。确保控制台窗口中在末尾附近出现以下消息

OPTIMAL SOLUTION FOUND

Visual Studio 项目

[编辑 | 编辑源代码]

Visual Studio 项目也可以轻松构建,但是您需要

  • 提供glpk.h
  • 的位置,并包含两个 GLPK 源代码子目录src/amdsrc/colamd

Windows CE

[编辑 | 编辑源代码]

Windows CE 是微软的嵌入式操作系统。

要为 Windows CE 6 构建软件包,将需要 VisualStudio 2005平台构建器。您首先构建一个定制的 BSP,然后构建一个操作系统设计,最后构建一个针对该操作系统设计的 SDK。最好将其作为静态库完成所有操作,然后将生成的文件下载到您的 Windows CE 设备。

您还需要指定glpk.h的位置,并在当前操作系统设计的子项目中包含 GLPKsrc/amdsrc/colamd目录。

还可以查看 2011 年 6 月的 主题,以获取更多详细信息。

Borland C++ 编译器

[编辑 | 编辑源代码]

免费的 Borland C++ 5.5 编译器的开发在几年前就停止了,但它仍然可以在 edn.embarcadero.com/article/20633 上获得。

针对 Borland C++ 编译器的构建脚本在 GLPK 版本 4.37 之前包含在内,之后就被删除了。

GNU GCC (通过 MinGW) 编译器

[编辑 | 编辑源代码]

MinGW(Minimalist GNU for Windows)是 GNU 编译器集合 (GCC) 和 Binutils 的移植版本,旨在支持在 Windows 本身开发原生 Microsoft Windows 应用程序。

针对 MinGW 的构建脚本在 GLPK 版本 4.37 之前包含在内,之后就被删除了。

在 MSYS(Minimal SYStem)环境中,可以使用适当的 POSIX makefile 构建 GLPK。

GNU GCC (通过 Cygwin) 编译器

[编辑 | 编辑源代码]

Cygwin 是一个适用于 Microsoft Windows 的类 Unix 环境和命令行界面。

在 Cygwin 环境中,可以使用适当的 POSIX makefile 构建 GLPK。

Dev-C++ 是一个适用于 Microsoft Windows 的 IDE,它提供 GNU GCC 编译器的前端。截至 2011 年,Dev-C++ 尚未积极开发,但衍生项目 wxDev-C++ 正在开发中。GLPK 以前为 Dev-C++ 提供 makefile,但现在不再提供。如果您需要其他选择,请考虑使用 Microsoft Visual Studio Express。

参考文献

[编辑 | 编辑源代码]
  1. "KB2519277 - 修复:当安装 Windows SDK v7.1 时,将 Visual Studio 2010 Professional 或 Visual Studio 2010 Express 升级到 Visual Studio 2010 SP1 会删除 Visual C++ 编译器". 微软. 2011-03-30. 检索于 2012-02-27.
华夏公益教科书