尝试将QString与空字符串进行比较时,我遇到了错误。
QString S = "abc";
if (S != "") // Sigill on this line
{
qDebug("ok");
}
答案 0 :(得分:7)
根据signal
手册页(第7节),SIGILL
表示非法指令,如果试图执行无效或格式错误的指令或指令,则会引发该指令需要比您更高的权限级别。
因为两个字符串的比较不需要需要特殊权限的操作,所以您的QT版本很可能是使用supoort编译的,因为处理器不支持这些指令集(例如支持SSE 4.2,而您的处理器不支持SSE 4.2)。要检查这种情况,可以在检查处理器支持编译器使用的所有指令集后重新编译QT库。