SDL2发出未定义的引用SDL_main

时间:2015-08-01 10:55:49

标签: eclipse sdl-2

i,v在Windows7 64bit i上下载了SDL2库,m使用MinGW编译器,我的IDE是:eclipse Mars 所以问题是当我构建我的SDL程序时,我面临这个问题: 的 C:\Users\{C}\Desktop\eclipse\MinGW\lib/libSDL2main.a(SDL_windows_main.o):SDL_windows_main.c:(.text+0x18): undefined reference to SDL_main' `

我做的每件事情都正确,但我一直面对这个问题,那就是整个CDT的构建:

 13:19:24  Incremental Build of configuration Debug for project
 boring **** Info: Internal Builder is used for build g++
 "-LC:\\Users\\{C}\\Desktop\\eclipse\\MinGW\\lib" -o boring.exe
 "src\\boring.o" -lmingw32 -lSDL2main -lSDL2 
 C:\Users\{C}\Desktop\eclipse\MinGW\lib/libSDL2main.a(SDL_windows_main.o):SDL_windows_main.c:(.text+0x18):
 undefined reference to `SDL_main' collect2.exe: error: ld returned 1
 exit status 13:19:27 Build Finished (took 3s.337ms)

这里是我的源代码:

#include <iostream>
#include <SDL2/SDL.h>
using namespace std;
int main() {
    const int SCREEN_WIDTH = 800;
    const int SCREEN_HEIGHT = 600;
    if (SDL_Init(SDL_INIT_VIDEO) < 0) {
        cout << "SDL init failed." << endl;
        return 1;
    }
    SDL_Window *window = SDL_CreateWindow("Particle Fire Explosion",
    SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, SCREEN_WIDTH          SCREEN_HEIGHT, SDL_WINDOW_SHOWN);,
    if (window == NULL) {
        SDL_Quit();
        return 2;
    }
    bool quit = false;
    SDL_Event event;
    while (!quit) {
        // Update particles
        // Draw particles
        // Check for messages/events
        while (SDL_PollEvent(&event)) {
            if (event.type == SDL_QUIT) {
                quit = true;
            }
        }
    }
    SDL_DestroyWindow(window);
    SDL_Quit();
    return 0;
}

感谢;

1 个答案:

答案 0 :(得分:0)

SDL要求您将主要定义为main(int argc, char *argv[])。请检查这是否可以解决您的问题。