我在Qt中遇到错误:SIGILL ERROR

时间:2014-01-20 15:24:43

标签: qt qstring

尝试将QString与空字符串进行比较时,我遇到了错误。

QString S = "abc";
if (S != "") // Sigill on this line
{
qDebug("ok");
}

1 个答案:

答案 0 :(得分:7)

根据signal手册页(第7节),SIGILL表示非法指令,如果试图执行无效或格式错误的指令或指令,则会引发该指令需要比您更高的权限级别。

因为两个字符串的比较不需要需要特殊权限的操作,所以您的QT版本很可能是使用supoort编译的,因为处理器不支持这些指令集(例如支持SSE 4.2,而您的处理器不支持SSE 4.2)。要检查这种情况,可以在检查处理器支持编译器使用的所有指令集后重新编译QT库。