Windows下Makefile链接GLPK报错cannot find -lglpk如何解决
问题原因
链接器报错cannot find -lglpk的核心原因是你当前使用的Makefile默认配置是面向Linux/macOS类Unix系统的,库搜索路径指向了Unix系统特有的/opt/local/lib目录,没有包含你Windows系统下GLPK的实际存放路径,因此链接器无法找到GLPK的库文件。
解决步骤
- 修改Makefile中的头文件搜索路径和库搜索路径配置
找到原Makefile中INCLUDE_DIRS和LIBS对应的两行,替换为以下内容:
# 替换原有INCLUDE_DIRS配置,指向GLPK头文件所在目录 INCLUDE_DIRS += -IC:/glpk-5.0/src # 替换原有LIBS配置,指向GLPK库文件所在目录 LIBS = -LC:/glpk-5.0/w64 -lglpk -lm
- 验证GLPK文件兼容性
- 确认
C:\glpk-5.0\w64目录下存在libglpk.a(静态库)或glpk.lib、libglpk.dll.a(动态库导入库)文件 - 从报错日志可见你使用的是32位MinGW,如果下载的GLPK是64位版本,会出现架构不兼容问题,需要更换为32位版本的GLPK,或者安装64位的MinGW-w64工具链
- 重新编译
修改完成后先执行make clean清理之前生成的错误中间文件,再重新执行make命令即可。
内容的提问来源于stack exchange,提问作者Sangwoo Kim
相关产品推荐
相关产品推荐

