1

我正在为 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 年。有什么我遗漏的吗?

4

3 回答 3

3

这意味着链接器找不到库。仔细检查中的设置

Project -> Properties -> Configuration Properties -> Linker

  1. 指定目录:GeneralAdditional Library Directories<path>\SDL2-2.0.3\lib\x86

  2. 指定文件:InputAdditional DependenciesSDL2.lib;SDL2main.lib;

于 2012-09-26T07:52:44.920 回答
1

如果您未能在 main() 中包含可选的命令行参数,则在尝试编译包含 SDL2 的任何内容时都会出错,因此正确的解决方案是始终记住执行Rafael 所说的操作。

int main(int argc,char* argv[]){}

如果您确定正确包含库,这将解决所有问题。

于 2019-04-16T19:09:11.413 回答
1

如果你已经这样做了,你仍然得到同样的错误。可能是您没有编写 main 以便它允许命令参数。它应该看起来像这样。

int main(int argc,char* argv[]){ // your code here }
于 2017-02-23T03:21:40.253 回答