首页 > 解决方案 > 如何在 Windows 中构建 glpk 时修复错误

问题描述

我正在尝试构建 glpk 以在 VS2019 中使用,但我遇到了一个无法解决的问题。在 Build_GLPK_with_VC9.bat 文件中,我将目录更改为包含文件 vcvars64.bat 的文件夹,但是在编译时出现以下错误消息:

[vcvarsall.bat] 环境初始化为:'x64'

该系统找不到指定的路径。

该系统找不到指定的路径。

有人知道如何解决这个问题吗?我在管理员模式下执行 .bat,但错误消息仍然存在。

编辑 这是 glpk 提供的原始 .bat 文件:

rem Build GLPK with Microsoft Visual Studio Express 2008 and
rem Windows Software Development Kit (SDK) for Windows Server 2008

rem NOTE: Make sure that HOME variable specifies correct path.
set HOME="C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC"

call %HOME%\bin\vcvars64.bat
copy config_VC9 config.h
%HOME%\bin\nmake.exe /f Makefile_VC9 all
%HOME%\bin\nmake.exe /f Makefile_VC9 check

pause

这是具有所需路径的同一个文件:

rem Build GLPK with Microsoft Visual Studio Express 2008 and
rem Windows Software Development Kit (SDK) for Windows Server 2008

rem NOTE: Make sure that HOME variable specifies correct path.
set HOME="C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC"

call %HOME%\Auxiliary\Build\vcvars64.bat
copy config_VC9 config.h
%HOME%\bin\nmake.exe /f Makefile_VC9 all
%HOME%\bin\nmake.exe /f Makefile_VC9 check

pause

文件 Makefile_CV9 包含

# Build GLPK with Microsoft Visual Studio Express 2008 and
# Windows Software Development Kit (SDK) for Windows Server 2008

CFLAGS = /I. /DHAVE_CONFIG_H /nologo /W3 /MT /O2

OBJSET = \
..\src\glpapi01.obj \
..\src\glpapi02.obj \
..\src\glpapi03.obj \
..\src\glpapi04.obj \
..\src\glpapi05.obj \
..\src\glpapi06.obj \
..\src\glpapi07.obj \
..\src\glpapi08.obj \
..\src\glpapi09.obj \
..\src\glpapi10.obj \
..\src\glpapi11.obj \
..\src\glpapi12.obj \
..\src\glpapi13.obj \
..\src\glpapi14.obj \
..\src\glpapi15.obj \
..\src\glpapi16.obj \
..\src\glpapi17.obj \
..\src\glpapi18.obj \
..\src\glpapi19.obj \
..\src\glpavl.obj \
..\src\glpbfd.obj \
..\src\glpbfx.obj \
..\src\glpcpx.obj \
..\src\glpdmp.obj \
..\src\glpdmx.obj \
..\src\glpfhv.obj \
..\src\glpgmp.obj \
..\src\glphbm.obj \
..\src\glpini01.obj \
..\src\glpini02.obj \
..\src\glpios01.obj \
..\src\glpios02.obj \
..\src\glpios03.obj \
..\src\glpios04.obj \
..\src\glpios05.obj \
..\src\glpios06.obj \
..\src\glpios07.obj \
..\src\glpios08.obj \
..\src\glpios09.obj \
..\src\glpipm.obj \
..\src\glpipp01.obj \
..\src\glpipp02.obj \
..\src\glplib01.obj \
..\src\glplib02.obj \
..\src\glplib03.obj \
..\src\glplib04.obj \
..\src\glplib05.obj \
..\src\glplib06.obj \
..\src\glplib07.obj \
..\src\glplib08.obj \
..\src\glplib09.obj \
..\src\glplib10.obj \
..\src\glplib11.obj \
..\src\glplib12.obj \
..\src\glplpf.obj \
..\src\glplpp01.obj \
..\src\glplpp02.obj \
..\src\glplpx01.obj \
..\src\glplpx02.obj \
..\src\glplpx03.obj \
..\src\glplpx04.obj \
..\src\glplpx05.obj \
..\src\glplpx06.obj \
..\src\glplpx07.obj \
..\src\glplpx08.obj \
..\src\glplpx09.obj \
..\src\glpluf.obj \
..\src\glplux.obj \
..\src\glpmat.obj \
..\src\glpmpl01.obj \
..\src\glpmpl02.obj \
..\src\glpmpl03.obj \
..\src\glpmpl04.obj \
..\src\glpmpl05.obj \
..\src\glpmpl06.obj \
..\src\glpmps01.obj \
..\src\glpmps02.obj \
..\src\glpnet01.obj \
..\src\glpnet02.obj \
..\src\glpnet03.obj \
..\src\glpnet04.obj \
..\src\glpnet05.obj \
..\src\glppds.obj \
..\src\glpqmd.obj \
..\src\glprgr.obj \
..\src\glprng01.obj \
..\src\glprng02.obj \
..\src\glpscf.obj \
..\src\glpscg.obj \
..\src\glpscl.obj \
..\src\glpspm.obj \
..\src\glpspx01.obj \
..\src\glpspx02.obj \
..\src\glpsql.obj \
..\src\glpssx01.obj \
..\src\glpssx02.obj \
..\src\glptsp.obj

.c.obj:
        cl.exe $(CFLAGS) /I..\include /Fo$*.obj /c $*.c

all: glpk.lib glpsol.exe

glpk.lib: $(OBJSET)
        lib.exe /out:glpk.lib ..\src\*.obj

glpsol.exe: ..\examples\glpsol.obj glpk.lib
        cl.exe $(CFLAGS) /Feglpsol.exe ..\examples\glpsol.obj glpk.lib

check: glpsol.exe
        .\glpsol.exe --mps ..\examples\plan.mps

标签: visual-studiobatch-fileglpk

解决方案


您只需要找到“vcvars64.bat”和“nmake.exe”的确切路径。我遇到了同样的问题,这对我有用:

rem Build GLPK with Microsoft Visual Studio Express 2008 and
rem Windows Software Development Kit (SDK) for Windows Server 2008

rem NOTE: Make sure that HOME variable specifies correct path.
set HOME="c:\Program Files (x86)\Microsoft Visual Studio"

call %HOME%\2019\Community\VC\Auxiliary\Build\vcvars64.bat
copy config_VC9 config.h
%HOME%\2019\Community\VC\Tools\MSVC\14.28.29333\bin\Hostx64\x64\nmake.exe /f Makefile_VC9 all
%HOME%\2019\Community\VC\Tools\MSVC\14.28.29333\bin\Hostx64\x64\nmake.exe /f Makefile_VC9 check

pause

推荐阅读