Не удается построить решение в режиме выпуска для библиотеки SDL на VS 2019 - PullRequest
1 голос
/ 08 октября 2019

enter image description here

Я пытался загрузить библиотеку SDL по этой конкретной ссылке https://www.youtube.com/watch?v=PTQkCRxr6lk&t=194s. Как только я наткнулся на «фатальную ошибку», и я не имею понятиячто нужно сделать, чтобы решить эту проблему.

Вот что я получил:

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 ==========

1 Ответ

1 голос
/ 17 октября 2019

@ Нери-кун Я столкнулся с точно такой же проблемой при сборке SDL2 на VS2019. Кажется, что memset находится в vcruntime.dll, что не входит в CMakeLists.txt. Так что найдите следующую часть в CMakeLists.txt и добавьте vcruntime к EXTRA_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)
...