无法在 VS 2019 上以发布模式为 SDL 库构建解决方案

Ner*_*kun 4 c sdl cmake unresolved-external visual-studio-2019

在此处输入图片说明

我试图从这个特定链接https://www.youtube.com/watch?v=PTQkCRxr6lk&t=194s下载 SDL 库。但是我偶然发现了一个“致命错误”,我不知道该怎么做才能解决它。

这是我得到的错误:

1>------ Build started: Project: SDL2, Configuration: Release x64 ------
2>------ Skipped Build: Project: uninstall, Configuration: Release x64 ------
2>Project not selected to build for this solution configuration 
1>   Creating library D:/Media/Downloads/SDL2-2.0.10/Build/Release/SDL2.lib and object D:/Media/Downloads/SDL2-2.0.10/Build/Release/SDL2.exp
1>SDL_string.obj : error LNK2019: unresolved external symbol memset referenced in function SDL_vsnprintf_REAL
1>D:\Media\Downloads\SDL2-2.0.10\Build\Release\SDL2.dll : fatal error LNK1120: 1 unresolved externals
1>Done building project "SDL2.vcxproj" -- FAILED.
3>------ Skipped Build: Project: INSTALL, Configuration: Release x64 ------
3>Project not selected to build for this solution configuration 
========== Build: 0 succeeded, 1 failed, 4 up-to-date, 2 skipped ==========
Run Code Online (Sandbox Code Playgroud)

小智 9

@Neri-kun 我在 VS2019 上构建 SDL2 时遇到了完全相同的问题。似乎memset是在vcruntime.dll,不包括在CMakeLists.txt. 所以找到以下部分CMakeLists.txt并添加vcruntimeEXTRA_LIBS. 问题解决了:

   # Libraries for Win32 native and MinGW
-  list(APPEND EXTRA_LIBS user32 gdi32 winmm imm32 ole32 oleaut32 version uuid advapi32 shell32)
+  list(APPEND EXTRA_LIBS vcruntime user32 gdi32 winmm imm32 ole32 oleaut32 version uuid advapi32 shell32)
Run Code Online (Sandbox Code Playgroud)