Я делаю проект SDL для Uni и сделал полностью рабочую программу в Visual Studio для Windows, однако, когда я ставлю программу на Linux (требуется для демонстрации), я получаю ошибку сегментации.Мне интересно, является ли мой файл cmakelist неправильным из-за того, что вывод gdb в основном связан с библиотеками sdl, но я действительно не уверен, поскольку я новичок в cmake.
Используя gdb, я попытался отследить сегментациюошибка, но это не сильно помогло!Все, что я изменил по сравнению с версией для Windows, - это то, что я создал файл cmakelists.txt и изменил включения в мои заголовочные файлы для SDL на Linux.
Вывод GDB:
#0 0x00007fffed4f521e in ?? ()
#1 0x00007ffff4f5bac2 in XCloseIM () from /lib64/libX11.so.6
#2 0x00007ffff7b67c44 in X11_VideoQuit () from /lib64/libSDL2-2.0.so.0
#3 0x00007ffff7b37d4e in SDL_VideoQuit_REAL () from /lib64/libSDL2-2.0.so.0
#4 0x00007ffff7aaffc5 in SDL_QuitSubSystem_REAL () from /lib64/libSDL2-2.0.so.0
#5 0x00007ffff7ab00e8 in SDL_Quit_REAL () from /lib64/libSDL2-2.0.so.0
#6 0x000000000040266f in close () at /home/csunix/sc18mk/Documents/Programming Project/SDL/SDL FOR C/main.c:105
#7 0x00007fffed144b13 in _dbus_close () from /lib64/libdbus-1.so.3
#8 0x00007fffed13c2c6 in socket_disconnect () from /lib64/libdbus-1.so.3
#9 0x00007fffed13b0fb in _dbus_transport_disconnect.part.5 () from /lib64/libdbus-1.so.3
#10 0x00007fffed125ee2 in _dbus_connection_close_possibly_shared_and_unlock () from /lib64/libdbus-1.so.3
#11 0x00007ffff7b759d6 in SDL_DBus_Quit () from /lib64/libSDL2-2.0.so.0
#12 0x00007ffff7b37d4e in SDL_VideoQuit_REAL () from /lib64/libSDL2-2.0.so.0
#13 0x00007ffff7aaffc5 in SDL_QuitSubSystem_REAL () from /lib64/libSDL2-2.0.so.0
#14 0x00007ffff7ab00e8 in SDL_Quit_REAL () from /lib64/libSDL2-2.0.so.0
#15 0x000000000040266f in close () at /home/csunix/sc18mk/Documents/Programming Project/SDL/SDL FOR C/main.c:105
#16 0x00007ffff4cefc1b in xcb_disconnect () from /lib64/libxcb.so.1
#17 0x00007fffdcab539d in pa_client_conf_from_x11 () from /usr/lib64/pulseaudio/libpulsecommon-10.0.so
#18 0x00007fffdca76050 in pa_client_conf_load () from /usr/lib64/pulseaudio/libpulsecommon-10.0.so
#19 0x00007fffdccee884 in pa_context_new_with_proplist () from /lib64/libpulse.so.0
#20 0x00007ffff7b5aa2e in ConnectToPulseServer_Internal () from /lib64/libSDL2-2.0.so.0
#21 0x00007ffff7b5b0c9 in PULSEAUDIO_Init () from /lib64/libSDL2-2.0.so.0
#22 0x00007ffff7ab448c in SDL_AudioInit_REAL () from /lib64/libSDL2-2.0.so.0
#23 0x00007ffff7aafcb7 in SDL_InitSubSystem_REAL () from /lib64/libSDL2-2.0.so.0
#24 0x000000000040292f in init () at /home/csunix/sc18mk/Documents/Programming Project/SDL/SDL FOR C/init.c:13
#25 0x0000000000402694 in main (argc=1, args=0x7fffffffdbd8) at /home/csunix/sc18mk/Documents/Programming Project/SDL/SDL FOR C/main.c:111
(gdb) frame 6
#6 0x000000000040266f in close () at /home/csunix/sc18mk/Documents/Programming Project/SDL/SDL FOR C/main.c:105
105 SDL_Quit();
(gdb) frame 15
#15 0x000000000040266f in close () at /home/csunix/sc18mk/Documents/Programming Project/SDL/SDL FOR C/main.c:105
105 SDL_Quit();
(gdb) frame 25
#25 0x0000000000402694 in main (argc=1, args=0x7fffffffdbd8) at /home/csunix/sc18mk/Documents/Programming Project/SDL/SDL FOR C/main.c:111
111 if (init()) {
(gdb) frame 24
#24 0x000000000040292f in init () at /home/csunix/sc18mk/Documents/Programming Project/SDL/SDL FOR C/init.c:13
13 if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO) == -1) {
CMakeLists.txt:
project(SDL)
#set( CMAKE_BUILD_TYPE Release)
set( CMAKE_BUILD_TYPE Debug)
cmake_minimum_required(VERSION 2.6)
set (CMAKE_C_FLAGS "-std=c99 -lSDL2 -lSDL2_image -lSDL2_ttf -lSDL_mixer -g")
add_executable(kraken main.c init.c kraken.c worldObject.c menu.c leaderboard.c display.c)
set_property(TARGET kraken PROPERTY C_STANDARD 99)