MVS2015 SDL2 不断给出"unresolved externals"错误

MVS2015 keeps giving "unresolved externals" error with SDL2

本文关键字:unresolved externals 错误 SDL2 MVS2015      更新时间:2023-10-16

到目前为止,我正试图让SDL与我的MVS2015一起工作,但没有成功,我真的很想让它发挥作用,所以我会解释我所做的每一步。首先,我从SDL安装指南下载了预构建SDL2库:https://wiki.libsdl.org/Installation,然后打开包装。在MVS2015中制作了一个新的控制台应用程序,打开项目属性页并正确设置了"Include Directories",我对其进行了三次检查,也对"Library Directories"进行了检查。然后我转到"Linker"->"Input",并将SDL2.lib添加到"AdditionalDependencies"中。到目前为止还不错,我的代码现在应该可以使用SDL了,对吧?我做了一个简短的main来测试它是否有效:

#include <SDL.h>
int main(){ 
SDL_Init(SDL_INIT_EVERYTHING);
SDL_Quit();
return 0;}

如果我构建它,我会收到以下错误消息:

Severity    Code    Description Project File    Line
Error   LNK1120 1 unresolved externals  sdltry4 c:usersmyuserdocumentsvisual studio 2015Projectssdltry4Debugsdltry4.exe 1
Error   LNK2019 unresolved external symbol _WinMain@16 referenced in function "int __cdecl __scrt_common_main_seh(void)" (?__scrt_common_main_seh@@YAHXZ)   sdltry4 c:UsersBandandocumentsvisual studio 2015Projectssdltry4sdltry4MSVCRT.lib(exe_winmain.obj)   1

真的很感激你的帮助。

在包含主SDL头之前,您需要添加此定义:

#define SDL_MAIN_HANDLED
#include "SDL.h"

SDL.h包括SDL_main.h,它有一个有趣的地方,关于想要使用自己的WinMain定义,它可以被禁用,因为您有自己的main。