为什么我在 SDL_Init 时收到错误消息?

why I'm getting an error when on SDL_Init?

当我的代码是:

int WinMain(int argc, char **argv) {

    int SDL_Init(SDL_INIT_VIDEO);
    return 0;
}

一切正常 但是当我的代码是:

int WinMain(int argc, char **argv) {

    if(SDL_Init(SDL_INIT_VIDEO) < 0) {
        // nothing here
    }
    return 0;
}

我收到此错误: undefined reference to 'SDL_Init'

我正在使用 VSC 1.32.1 window 10 mingw32 6.3.0

在您的第一个代码中,您删除了一个名为 SDL_Initint,让我们更改名称以使其更明显:

int WinMain(int argc, char **argv) {
    int variable_name(some_value);    
}

在你的第二个代码中你调用了一个函数:

int WinMain(int argc, char **argv) {
    if(some_function(some_value) < 0) { }
}

这就是为什么第一次您没有收到错误,但第二次却收到错误的原因。似乎没有 some_function aka SDL_Init 定义,这可能是由于链接不正确造成的,请参阅 here 了解如何解决这个问题。