我正在为VS2010做LazyFoo的SDLTutorial设置,我很难让它合作。奇怪的是,我可以让它在VS2008上看起来很好用。
#include "SDL.h"
int main(int argc, char* argv[])
{
SDL_Init(SDL_INIT_EVERYTHING);
SDL_Quit();
return 0;
}
这是它给我的错误消息
1>MSVCRT.lib(crtexe.obj) : error LNK2019: unresolved external symbol _main referenced in function ___tmainCRTStartup
1>Visual Studio 2008\Projects\Test\Debug\Test.exe : fatal error LNK1120: 1 unresolved externals
我已经按照步骤一步一步地进行了至少4次,并且我继续得到这些错误。我正考虑回到2008年,如果我不能解决这个问题,但我宁愿留在2010年。我有什么遗漏吗?
答案 0 :(得分:3)
这意味着链接器无法找到库。仔细检查
中的设置 Project -> Properties -> Configuration Properties -> Linker
指定目录:常规,其他库目录:<path>\SDL2-2.0.3\lib\x86
和
指定文件:输入,其他相关性:SDL2.lib;SDL2main.lib;
答案 1 :(得分:1)
如果你已经这样做了,你仍然会得到同样的错误。可能是你没有编写你的main,所以它允许命令参数。它看起来应该是这样的。
int main(int argc,char* argv[]){ // your code here }
答案 2 :(得分:1)
如果您无法在main()中包括可选的命令行参数,则在尝试编译包含SDL2的任何内容时都会出错,因此正确的解决方案是始终记住做Rafael said。 >
int main(int argc,char* argv[]){}
如果您确定正确包含了库,则可以解决所有问题。