官方Quake 2源代码无法使用各版本MSVC编译问题求助
Quake 2 官方源代码MSVC编译失败解决方案
故障根因
VC6 加载quake2.dsw无响应原因
- 源代码存放路径包含中文、空格、特殊符号,或总路径长度超过260字符,VC6的工程加载逻辑完全不兼容非ASCII字符与长路径
- 源代码包内的
quake2.dsw或关联的.dsp项目文件换行符被修改为UNIX格式(LF),VC6仅支持识别Windows格式的CRLF换行 - 新系统(Win10/11)下运行的VC6未配置兼容性权限,系统UAC拦截了VC6的工程文件读取操作,导致静默加载失败
高版本MSVC迁移工作区失败原因
Quake 2 3.19版本的工程包含大量VC6专属的自定义构建规则、16位资源编译配置、硬编码编译选项,高版本VS的迁移工具无法识别这类90年代的专属配置,直接迁移必然失败。
解决方法
方案一:使用VC6正常编译
- 将源代码整体移动到根目录下的纯英文无空格路径,例如
C:\q2src\,确保所有父目录无特殊字符 - 打开所有
.dsw、.dsp文件,确认编码为ANSI、换行符为CRLF格式,如有异常另存为修正即可 - 右键点击VC6快捷方式,选择「属性」-「兼容性」,勾选「以兼容模式运行这个程序」并选择Windows XP SP3,同时勾选「以管理员身份运行此程序」,确认后打开VC6,从软件内部的「文件」-「打开工作区」选择
quake2.dsw加载,不要直接双击工程文件打开
方案二:高版本VS手动编译(无需迁移老工程)
无需尝试迁移老旧的dsw工程,手动创建新解决方案即可正常编译:
- 新建空白解决方案,按照原工程结构分别添加5个对应空项目:客户端、服务端、游戏逻辑、渲染器、音频模块
- 将对应目录的源代码按分类添加到各个项目中
- 统一配置项目编译选项:
- 字符集选择「使用多字节字符集」,运行库选择
MT/MTd静态运行库 - 关闭SDL检查、安全检查,添加预定义宏
WIN32、_WINDOWS、QUAKE2_GAME - 链接器添加依赖库
winmm.lib、wsock32.lib、opengl32.lib
- 字符集选择「使用多字节字符集」,运行库选择
- 按依赖顺序依次编译各个项目即可
内容的提问来源于stack exchange,提问作者darek_911
相关产品推荐
相关产品推荐

