我试图从这个特定的链接https://www.youtube.com/watch?v=PTQkCRxr6lk&t=194s下载SDL库。但是,我偶然发现了一个“致命错误”,我不知道该如何解决。
这是我遇到的错误:
<%= Parent.joins(:children).where("children.created_at BETWEEN ? AND ?", 2019-01-01, 2020-01-01).uniq.count %>
答案 0 :(得分:3)
@ Neri-kun在VS2019上构建SDL2时遇到了完全相同的问题。似乎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)
答案 1 :(得分:0)
这实际上是编译器优化问题。某种原因导致对memset的调用不合适。如果检查SDL_string.c文件,则会发现未定义HAVE_MEMSET,因此未调用memset。 VisualC文件夹中提供的解决方案文件确实可以正确构建发行版配置。如果检查cmake生成的解决方案与VisualC文件夹中的解决方案之间的差异,您会发现cmake生成的版本内联了任何合适的函数,而VisualC文件夹中的一个仅内联了__inline标记函数(/Ob1)。