SDL2 导出到 linux

SDL2 Exporting to linux

我使用 SDL2 在 MSVC 上编写了我的应用程序, 在将它导出到 linux 时,我遇到了很多 problems.I 解决了大部分问题,除了这个

我不知道该怎么办?任何人都知道发生了什么事? 编译器是使用 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);

Segmentation fault 表示您正在尝试读取(或写入)您不拥有的内存。所以那段代码中的指针之一:

surface->map->info.r 

不好。

检查您是否正确地为 surfacemap 数据结构分配了 space,并且它们的 space 在使用前没有被取消分配。否则,指针本身可能已损坏。

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

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

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