当前位置:  开发笔记 > 编程语言 > 正文

如何在Visual Studio 2008 Express中编译和链接最小的SDL程序?

如何解决《如何在VisualStudio2008Express中编译和链接最小的SDL程序?》经验,为你挑选了1个好方法。

我正在尝试在Visual Studio 2008 Express中使用C++中的SDL.以下程序编译但不链接:

#include 

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

链接错误是:

LINK : fatal error LNK1561: entry point must be defined

无论我如何或如何链接SDL.lib和SDLmain.lib,我都会得到这个.定义mainmain()SDL_main()给出相同的错误,有或没有extern "C".

编辑:我通过不在main.cpp中包含SDL.h解决了这个问题 - 我做了一个独立于问题的重构.类似的解决方案是#undef main在定义函数之前.



1> Judge Maygar..:

我目前没有VC++,但我已多次看到这个问题了.

您需要创建一个Win32项目而不是一个控制台项目.Win32项目需要WinMain函数作为程序入口点.SDLmain.lib包含此入口点,SDL_main.h头文件具有将主函数重新映射到SDL_main的宏.此函数由SDLmain库中的入口点调用.

主要功能必须具有以下签名:

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

在声明main函数之前还需要包含SDL.h,并且需要链接到SDL.lib和SDLmain.lib.

看起来你正在这样做.所以,我的猜测是你有一个控制台项目设置.因此,链接器正在寻找要调用的main函数,但是它会被宏SDL_main.h重新映射到SDL_main.所以,链接器找不到入口点而放弃了!


是的,从更改为Windows应用程序(通过项目属性/配置属性/链接器/系统/子系统)工作.谢谢.(尽管我最终得到了一个不同的解决方案)
推荐阅读
家具销售_903
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有