首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未定义的对WinMain@16 C++,SDL-2的引用

未定义的对WinMain@16 C++,SDL-2的引用
EN

Stack Overflow用户
提问于 2015-09-01 23:13:07
回答 2查看 5.9K关注 0票数 12

我得到了错误的undefined reference to WinMain@16。为了节省空间,下面是指向项目中当前所有文件的链接。目前,除了创建一个窗口,填充绿色的窗口,然后在角落里画一个盒子,同时通过控制台跟踪我鼠标的位置,它不应该做太多的事情。但是,它不会构建,并且给了我前面提到的错误。

我的链接库是:

  • glew32s
  • libSDL2main
  • mingw32
  • libSDL2
  • opengl32
  • glew32

我在g++中使用代码块13.12,遵循C++11 ISO C++语言标准。我的电脑正在使用windows 10,以防与此相关。

我花了很长一段时间试图找到一个解决方案,似乎每个人都有一个完全不同的解决方案,到目前为止,他们都没有为我工作过。几个例子包括:

  • 按照SDL2_image将这个类似的问题添加到链接库中。它给了我错误的-lSDL2_image
  • 这个项目完全从零开始,以防我没有注意到的错误是原因。(我也有同样的错误)。
  • 将我的main函数更改为WinMain。我也收到了同样的错误信息。
  • 添加一个Windows.h头。这没什么值得注意的。
  • 各种所谓的“正确的命令”给我喜欢的图书馆。到目前为止,所有这些似乎都没有帮助。

我还应该指出,用户、啦啦队和赫特提供的答案。- 这里可能就是我要找的东西,但老实说,我不能完全理解我在这个基础上应该做什么。

如果有任何相关的信息,我忘了包括,请告诉我,我会尽快这样做。提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-09-02 01:00:02

我想你想

代码语言:javascript
复制
#define SDL_MAIN_HANDLED

在您的主文件中,行之前

代码语言:javascript
复制
#include <SDL2/SDL.h>

解释:

在SDL / SDL2中,为了使某些类型的应用程序的跨平台开发变得更简单,SDL为应用程序创建了一个自定义的“入口点”。也就是说,您的int main()不是真正的主要内容。所发生的情况是,main被定义为similar中的宏,这将导致您的main被重命名为SDL_main或类似的宏。然后,在"SDL_main“库中定义一个不同的main,它将是应用程序的真正main。这个main只是以适合于平台的任何方式获取命令行参数,并调用您的main (改名为SDL_main)。

在windows上,对于您的应用程序是作为控制台程序启动还是作为gui程序iiuc启动,也存在一些差异。

有时候,您希望SDL为您做这些事情,但是如果您正在开发一个传统的控制台程序,通常不需要,所以您可以通过SDL这个SDL_MAIN_HANDLED定义,以防止做所有这些事情。

#undef main方法也会起作用,但它不太好,因为这样,您告诉SDL正在发生什么,使用另一种方法,SDL认为它的所有内容都将被使用,实际上,稍后您将使用#undef来粗略地禁用它。

如果您想查看各种宏/平台检查的详细信息,可以查看SDL_main.h头。如果您想知道SDL主系统的好处是什么,可以查看SDL文档。

票数 24
EN

Stack Overflow用户

发布于 2020-12-05 09:22:11

在接受的答案(未定义main、定义SDL_MAIN_HANDLED和所有这些)中建议的解决方案偏离了SDL2的使用方式。这是另一个问题,如果计划的方法是合理的,但我更愿意坚持到底。

此错误意味着您没有链接正确的库,或以错误的顺序链接它们。

您需要如下所示,按此顺序排列:-lmingw32 -lSDL2main -lSDL2

这样做可能会将错误更改为undefined reference to `SDL_main'。这意味着您使用的main签名与SDL所期望的不同。一定是int main(int, char **)int main(int, char *[])。添加参数名是允许的,但您不能更改其他任何内容:您必须拥有参数,即使您不使用它们。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32342285

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档