用C语言编写的SDL程序中的分段错误

时间:2019-04-27 20:03:28

标签: c segmentation-fault sdl

我正在为uni做一个SDL项目,并在Windows的Visual Studio中制作了一个可以正常运行的程序,但是当我将该程序放在Linux(演示所需)上时,出现了分段错误。我想知道由于gdb输出而导致的我的cmakelist文件是否错误,主要是sdl库中的东西,但是我不确定我是cmake的新手。

我使用gdb尝试跟踪分段错误,但是并没有太大帮助!从Windows版本开始,我所做的所有更改就是我创建了cmakelists.txt,并更改了Linux上SDL的头文件中的包含。

GDB输出:

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)

CMakeLists.txt:

import glob
from os.path import basename, dirname
for file in glob.glob( "/path/to/csvs/**.csv"): # ** = recursive
    d = dirname(file) # dir
    fn = basename(file) # filename
    with open(file) as f, open(f"{d}/new_{fn}", "w+") as f2:
        [f2.write(x) for x in list(f) if x[1] == ","]

1 个答案:

答案 0 :(得分:1)

#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

xcb_disconnect()与您的close()版本无关。重命名它,以免与POSIX的close()名称冲突或声明为static