我刚刚开始学习C并现在安装QT x64(在这里形成表格:http://tver-soft.org/qt64)。我有两个安装选项:MinGW 4.9.2 SEH
或MinGW 4.9.2 SJLJ
。
问题:哪个安装更好,为什么?
我读了What is difference between sjlj vs dwarf vs seh?和https://wiki.qt.io/MinGW-64-bit#Exception_handling:_SJLJ.2C_DWARF.2C_and_SEH,但一无所知(C和compiller语言的新手)。
最佳答案
SJLJ和SEH是两个不同的异常处理系统。
对于特定的差异,您已经看到的资源涵盖了所有内容。
但是,关于哪个更好安装,除非您知道需要SEH,否则请使用 SJLJ 。
2019更新:在现代系统上,没有理由使用SJLJ,因此上面的建议可能应该翻转。 SEH现在更加普遍。归根结底,这并不重要,因为在两者之间切换很容易。
J
SJLJ在各种体系结构中得到了更广泛的支持,并且更加健壮。同样,可以通过使用其他异常处理系统的库(包括C库)引发SJLJ异常。但是,它会降低性能。
SEH
SEH效率更高(不会降低性能),但是不幸的是,它没有得到很好的支持。当通过不使用SEH的库抛出SEH异常时,会导致发生不好的事情。
就您的代码而言,没有真正的区别。如果需要,您以后总是可以切换编译器。
关于c++ - MinGW SEH和MinGW SJLJ有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30739099/