SDL_退出分段错误

问题描述 投票:0回答:1

我使用的是 Ubuntu 22.04.4 LTS,并且正在使用 SDL2 库,但由于某种原因,调用

SDL_Quit()
会给我带来分段错误。这是发生错误的最小代码量:

#include <SDL2/SDL.h>

int main(void)
{                                                                
    SDL_Init(SDL_INIT_VIDEO);
    SDL_Window *screen = SDL_CreateWindow("test", 100, 100, 680, 550, 0);
    SDL_DestroyWindow(screen);
    SDL_Quit();
    return 0;
}

编译使用:

gcc test.c `sdl-config --cflags --libs` -lSDL2main -lSDL2 -Wall -pedantic -std=gnu99 -o test

如果我不打电话

SDL_CreateWindow()
,它会因某种原因起作用。我在 gdb 中运行它并回溯它,似乎错误发生在一个名为
___pthread_mutex_lock()
的函数中。有谁知道这里发生了什么吗?

c graphics segmentation-fault sdl
1个回答
0
投票

我猜既然你是针对 SDL2 进行编译,你应该使用

sdl2-config
而不是
sdl-config

要进行调试,您应该尝试通过在 shell 中键入

MY_FLAGS=$(sdl2-config --cflags --libs)
,然后键入
echo $MY_FLAGS
来独立查看这些标签。你应该有类似的东西

-I/include/path/to/SLD2 -D_REENTRANT -lSDL2

也许还有一些其他标志。

© www.soinside.com 2019 - 2024. All rights reserved.