我在项目中使用 SDL,但遇到了问题。我遵循了有关如何在 MS visual studio 中包含 SDL 的教程 here但它没有帮助。以下是我采取的步骤。
首先,我在 C/C++/General “Additional input directories” block 中添加了 SDL 输入目录:
其次,我在 Linker/General “Additional library directories” block 中添加了 SDL lib 目录:
第三,我将 SDL2.lib;SDL2main.lib 添加到链接器/输入下的“附加依赖项”部分:
最后,我将链接器/系统下的子系统部分设置为控制台 (/SUBSYSTEM:CONSOLE):
但是,当我尝试运行教程提供的测试代码时,这不起作用:
#include <iostream>
#include <SDL.h>
int main(int argc, char **argv){
if (SDL_Init(SDL_INIT_EVERYTHING) != 0){
std::cout << "SDL_Init Error: " << SDL_GetError() << std::endl;
return 1;
}
SDL_Quit();
return 0;
}
因为我在调试时遇到了这些构建错误:
1>------ Build started: Project: Project2, Configuration: Debug Win32 ------
1>start.obj : error LNK2019: unresolved external symbol _SDL_GetError referenced in function _SDL_main
1>start.obj : error LNK2019: unresolved external symbol _SDL_Init referenced in function _SDL_main
1>start.obj : error LNK2019: unresolved external symbol _SDL_Quit referenced in function _SDL_main
1>MSVCRTD.lib(crtexe.obj) : error LNK2019: unresolved external symbol _main referenced in function ___tmainCRTStartup
1>c:\users\holger\documents\visual studio 2013\Projects\Game\Debug\Project2.exe : fatal error LNK1120: 4 unresolved externals
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
我以为我很好地遵循了教程,但显然不是。请帮助我!
提前致谢!
干杯工程师
最佳答案
错误似乎是您正在构建 32 位应用程序,但指向 64 位库。
你的错误:
构建开始:项目:Project2,配置:调试 Win32
但是您设置的库目录的子目录是x64
。
关于c++ - MS visual studio 2013 SDL 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27652745/