Visual Studio 2017 编译 gens 世嘉模拟器

1) 下载源代码 2.14 版本

http://gens.me/downloads.shtml

2) 下载 老版本 DirectX 并且安装

https://github.com/apitrace/apitrace/wiki/DirectX-SDK

我用了下面的 2007年的版本

Last to include D3D8 headers and libraries: August 2007

https://www.microsoft.com/en-gb/download/details.aspx?id=13287

3) 加入环境变量

编辑 E: oolVS2017Common7ToolsVsDevCmd.bat

在:ext_end 之前,加入下面的代码

set DXSDK_DIR="C:Program Files (x86)Windows KitsDirectX_SDK_2007"
call %DXSDK_DIR%UtilitiesBindx_setenv.cmd i386

4 ) 因为老版本 dinput.lib 用了老的 libc.lib , 而 VS2017 默认用了 ucrt. 所以会有冲突。

编辑gens的Makefile,加上link选项 /NODEFAULTLIB:libc

变更后:

$(GENSPATH)gens.exe: $(OBJS)
	$(LINK)  /NODEFAULTLIB:libc /SUBSYSTEM:WINDOWS /OUT:"$@" /PDB:"$(SYMPATH)$(@B).pdb" $(GENS_LIBS) $**

参考:

https://docs.microsoft.com/en-us/cpp/c-runtime-library/crt-library-features?view=vs-2019

原文地址:https://www.cnblogs.com/johnsonshu/p/11902027.html