C++ 代码::Blocks、MinGW、libsdl和gnuc++;编译器:对的未定义引用`WinMain@16

C++ 代码::Blocks、MinGW、libsdl和gnuc++;编译器:对的未定义引用`WinMain@16,c++,mingw,codeblocks,C++,Mingw,Codeblocks,我一直在尝试编译最基本的SDL应用程序,但无论我做什么,都会遇到以下错误: c:/program files (x86)/codeblocks/mingw/bin/../lib/gcc/mingw32/4.4.1/../../../libmingw32.a(main.o):main.c:(.text+0xd2): undefined reference to `WinMain@16' 我搜索了这个问题的解决方案,但是它们都与Visual C++或缺少的主干有关。我没有使用VisualC++,我

我一直在尝试编译最基本的SDL应用程序,但无论我做什么,都会遇到以下错误:

c:/program files (x86)/codeblocks/mingw/bin/../lib/gcc/mingw32/4.4.1/../../../libmingw32.a(main.o):main.c:(.text+0xd2): undefined reference to `WinMain@16'
我搜索了这个问题的解决方案,但是它们都与Visual C++或缺少的主干有关。我没有使用VisualC++,我已经定义了Meal.

这是我的密码:

#include "SDL/SDL.h"

int main( int argc, char* args[] )
{
    //Start SDL
    SDL_Init( SDL_INIT_EVERYTHING );

    //Quit SDL
    SDL_Quit();
    return 0;
}
不要使用“其他链接器选项”。使用“链接库”部分。添加以下项目

mingw32
SDLmain
SDL
您可以将
-mwindows
放在“其他链接器选项”部分。

不要使用“其他链接器选项”。使用“链接库”部分。添加以下项目

mingw32
SDLmain
SDL

您可以将
-mwindows
放在“其他链接器选项”部分。

如果其他人遇到此问题,我会将-lmingw32放在-lSDLmain和-lSDL之后,这会导致我出现此问题。将-lmingw32放在第一位解决了这个问题。

如果其他人遇到这个问题,我将-lmingw32放在-lSDLmain和-lSDL之后,这导致了这个问题。首先使用-lmingw32修复它。

我在我的一个项目中遇到了相同的错误,我想在linux和windows上编译它。 我使用makefile来编译项目。 一个对我有效的解决方案,尽管我承认它有点像黑客,但它将这个添加到main.cpp(无论您的主要功能在哪里)


这使链接器找到WinMain并将其用作程序中的入口点。我也希望这个解决方案不会破坏linux的可编译性,希望它只是一个未使用的函数。

我在我的一个项目中遇到了相同的错误,我想在linux和windows上编译。 我使用makefile来编译项目。 一个对我有效的解决方案,尽管我承认它有点像黑客,但它将这个添加到main.cpp(无论您的主要功能在哪里)


这使链接器找到WinMain并将其用作程序中的入口点。我还希望此解决方案不会破坏linux的可编译性,希望它只是一个未使用的函数。

确保命名空间中没有
main
。并针对
-lmingw32
尝试此链接:(您可能已经尝试过)我在code::blocks和“其他链接器选项”下找到了链接器设置,我放置了“-lmingw32-lSDLmain-lSDL-mwindows”,但我仍然得到了错误。您查看了这里吗?是的,但我正在使用GNU编译器和-mwindows标志。请确保命名空间中没有
main
。并针对
-lmingw32
尝试此链接:(您可能已经尝试过)我在code::blocks和“其他链接器选项”下找到了链接器设置,我放置了“-lmingw32-lSDLmain-lSDL-mwindows”,但我仍然得到了错误。您查看了这里吗?是的,但是我正在使用GNU编译器和-mwindows标志。