C++ SFML绘图文本导致崩溃?

C++ SFML绘图文本导致崩溃?,c++,sfml,C++,Sfml,如果您能告诉我为什么会发生这种情况,我将不胜感激。我的钱都花在字体加载上了。虽然它对我来说没有崩溃,但它没有成功加载字体,因此至少: "Program received signal SIGSEGV, Segmentation fault. In ?? () (C:\Windows\SysWOW64\ig4icd32.dll)" 在我的情况下,我必须提供完整的路径使其工作: if (font.loadFromFile(FONTDIR "Monospace.ttf&

如果您能告诉我为什么会发生这种情况,我将不胜感激。

我的钱都花在字体加载上了。虽然它对我来说没有崩溃,但它没有成功加载字体,因此至少:

"Program received signal SIGSEGV, Segmentation fault.
In ?? () (C:\Windows\SysWOW64\ig4icd32.dll)"
在我的情况下,我必须提供完整的路径使其工作:

if (font.loadFromFile(FONTDIR "Monospace.ttf"))
    test.setFont(font);
其中,我将FONTDIR定义为在我的系统上:

if (font.loadFromFile(FONTDIR "Monospace.ttf")
 || font.loadFromFile(FONTDIR "liberation/LiberationMono-Regular.ttf"))
{
    test.setFont(font);
}
现在结果是:


我试着在我的机器上运行你的代码,效果很好。我认为您需要检查是否正确链接了所有库依赖项。例如,对于字体,您需要在链接器依赖项中按正确顺序设置“freetype.lib”。这里有一个指向的链接和一张指向正确的依赖顺序的图片


首先添加IO错误检查。特别是,这里是
loadFromFile
。谢谢你的回复,但是你已经输了。仍然立即崩溃。它似乎是在执行
test.setFont(font)时加载的那么,它什么时候崩溃?它在
app.draw(test)崩溃但是,如果字体未加载,它不会崩溃。可能是因为您的字体有问题吗?可能您安装的libfreetype版本与ABI不兼容或缺少重要的修复程序/请考虑构建/安装相关的调试库,并使用valgrind/ASAN/UBSan运行以查找确切原因,但我不会静态链接。这仍然是一个问题吗?是的。我也使用动态链接,我仍然需要包括这个。所以,让我详细说明一下。你认为这不重要是正确的,因为我认为情况也是如此。然而,由于某种原因,当我从code::blocks切换到MSV时,它就不是这样工作的。我必须包含它来解决这个问题。我不确定这样做的确切原因,但当时它对我起了作用。你的问题可能是别的,所以试着在SFML论坛上联系开发人员。我已经问过了。他们似乎帮不上忙。不过我会试试你的解决方案。不,那也不行。我对这件事完全迷茫了,这件事很简单。
if (font.loadFromFile(FONTDIR "Monospace.ttf")
 || font.loadFromFile(FONTDIR "liberation/LiberationMono-Regular.ttf"))
{
    test.setFont(font);
}
#define FONTDIR "/usr/share/fonts/truetype/"