在Visual Studio 2013下编译SDL 2.0.0/2.0.1源代码时出现问题

Issues compiling the SDL 2.0.0/2.0.1 Source under Visual Studio 2013

本文关键字:源代码 问题 2013下 Studio 编译 SDL Visual      更新时间:2023-10-16

我曾考虑过尝试使用提供的解决方案之一(Visual Studio 2013 Ultimate Edition下的Visual Studio 2012速成版)编译SDL 2.0.0/2.0.1的静态链接版本。不幸的是,它无法正确编译。经过一点研究,这可能是Visual Studio 2013 的一个错误

以下是一些错误:

Error   2   error LNK2019: unresolved external symbol __ftoui3 referenced in function _SDL_HashDollar   D:Source CodeSDL2-2.0.1VisualCSDLSDL_gesture.obj   SDL2
Error   3   error LNK2019: unresolved external symbol __dtoui3 referenced in function _SDL_PrintFloat   D:Source CodeSDL2-2.0.1VisualCSDLSDL_string.obj    SDL2
Error   9   error MSB3073: The command "copy "D:Source CodeSDL2-2.0.1VisualC\SDLWin32DebugSDL2.dll" "D:Source CodeSDL2-2.0.1VisualCteststestplatformWin32Debug\SDL2.dll" :VCEnd" exited with code 1. C:Program Files (x86)MSBuildMicrosoft.Cppv4.0V120Microsoft.CppCommon.targets  132 5   testplatform

对于其他有问题的人,可能需要暂时使用Visual Studio 2012或更早版本,直到Visual Studio 2013得到修复(至少对于__ftoui3和__dtoui3中未解决的外部符号错误)。不管怎样,请改用另一个编译器。

如何从VS 2013构建SDL?

我找到了一种构建它的方法:您需要将SDL项目的代码生成更改为使用/arch:SSE,以防止SSE2浮点函数被隐式调用。之后这个问题就消失了。