SDL2导出到Linux

时间:2018-10-23 00:44:47

标签: c++ ubuntu g++ sdl gnu

我使用SDL2在MSVC上编写了我的应用程序, 在将其导出到linux时,我遇到了很多问题。我解决了大多数问题,除了这个enter image description here

我不知道该怎么办?任何人都知道发生了什么事吗? 编译器是使用C ++ 14标准的GCC。

表面定义为:

SDL_Surface* textSurface = TTF_RenderText_Blended(font->getFont(), p_Text.c_str(), { p_Color.r,p_Color.g, p_Color.b, p_Color.a }); 
m_Texture = SDL_CreateTextureFromSurface(ENGINE->getRenderer(), textSurface);

2 个答案:

答案 0 :(得分:1)

Segmentation fault表示您正在尝试读取(或写入)您不拥有的内存。因此,这段代码中的一个指针:

surface->map->info.r 

不好。

检查是否已为surfacemap数据结构正确分配了空间,并且在使用前还没有对其空间进行过分配。否则,指针本身可能已损坏。

在Linux上有一个很棒的内存调试工具,名为valgrind。用您的程序运行它,然后用输出更新您的问题。

答案 1 :(得分:0)

我解决了我安装错误的SDL2库的问题: 使用了这些:

sudo apt-get install libsdl2-dev
sudo apt-get install libsdl2-image-dev
sudo apt-get install libsdl2-ttf-dev