【问题标题】:undefined reference to `SDL_main'未定义对“SDL_main”的引用
【发布时间】:2011-06-21 01:41:07
【问题描述】:

我正在尝试使用 MinGW 和 eclipse 在 Windows 上构建一个项目。 我正在使用 SDL 库,但是当我尝试编译它时,我得到了错误

g++ -Wl,-subsystem,windows -oplikoo.exe src\mouse.o src\camera.o src\Timer.o src\Pegs.o src\Graphics.o src\FPS.o src\Ball.o -lmingw32 -lSDLmain -lSDL.dll -lSDL_image -lSDL_mixer
c:/mingw/bin/../lib/gcc/mingw32/4.5.0/../../../libSDLmain.a(SDL_win32_main.o): In function `console_main':
/Users/hercules/trunk/SDL-1.2/./src/main/win32/SDL_win32_main.c:315: undefined reference to `SDL_main'

我知道 main 必须在该文件中有int main(int argc, char *argv[]) 签名和#include <SDL.h>,但它仍然不起作用。

【问题讨论】:

    标签: windows eclipse sdl mingw32


    【解决方案1】:

    main.cpp 不在 src 目录中,没有被编译

    【讨论】:

      【解决方案2】:

      在那里扫描您的编译行,我注意到您正试图直接链接“SDL.dll”。那不是你想要的。您应该链接 libSDL.la(前提是您实际使用的是 mingw)。

      另外,我不确定这是否会影响这里的任何内容,但我听说您“应该”最后链接到“SDL”。

      【讨论】:

      • 我一直直接链接到 SDL 或 SDL.dll,最后,它只需要 mingw32,在 SDLmain 之前,SDLmain 在 SDL 之前
      【解决方案3】:

      这只是发生在我身上。当我开始使用 args 参数定义 main 时:

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

      编译器错误消失了。

      【讨论】:

        猜你喜欢
        • 2012-06-03
        • 2016-06-20
        • 2014-07-13
        • 2011-03-27
        • 2022-01-22
        • 2016-04-04
        • 2015-11-03
        • 2011-08-11
        • 2019-07-22
        相关资源
        最近更新 更多