使用Clang编译时stb_image.h库触发段错误问题求助
使用Clang编译时stb_image.h库触发段错误问题求助
大家好,我最近在开发一个OpenGL项目,需要从内存中读取PNG文件并把字节数据存入缓冲区,目前用的是stb_image库来实现这个功能。我的代码里只用到了该库的两行核心代码:
stbi_set_flip_vertically_on_load(true); m_localBuffer = stbi_load(filepath.c_str(), &m_width, &m_height, &m_BBP, 4);
我用MinGW和MSVC编译项目都完全没问题——编译顺利通过,程序运行也没有任何错误。但换成Clang编译后,程序直接崩溃了。我追踪到段错误发生在stbi__load_and_postprocess_8bit函数的第1283行,问题和stbi__vertically_flip_on_load这个变量相关。我尝试过禁用stbi_set_flip_vertically_on_load调用,可还是会触发段错误。
我之前看到过相关的讨论,里面提到去掉stbi__vertically_flip_on_load变量的thread_local修饰符就能解决这个段错误,但我不确定这样修改库源码会不会带来其他潜在问题,也想请教各位有没有更规范、更稳妥的解决办法?
备注:内容来源于stack exchange,提问作者Henrik Melfald Kittang
相关产品推荐
相关产品推荐

