将 /EHa 添加到使用 Microsoft Visual C++ 编译器的 QtCreator

Posted

技术标签:

【中文标题】将 /EHa 添加到使用 Microsoft Visual C++ 编译器的 QtCreator【英文标题】:Add /EHa to QtCreator that used Microsoft Visual C++ Compiler 【发布时间】:2012-06-30 19:28:26 【问题描述】:

如何在 QtCreator for MS Compiler 中添加/EHa(结构化异常处理)。 我用过Microsoft Visual C++ Compiler。

【问题讨论】:

【参考方案1】:

这是怎么做的。适用于 Qt 4 和 Qt 5。这将设置 EHa 而不是默认的 EHsc:

win* 
   QMAKE_CXXFLAGS_EXCEPTIONS_ON = /EHa
   QMAKE_CXXFLAGS_STL_ON = /EHa

【讨论】:

【参考方案2】:

在您的项目文件中,添加:

QMAKE_CXXFLAGS += /EHa

【讨论】:

它不起作用。它适用于其他标志,但不适用于 /EHa。我假设它被 qmake.spec 覆盖。【参考方案3】:

只需转到 QtDIR 和 mkspecs 并选择编译器文件夹

然后打开qmake.conf并编辑

QMAKE_CFLAGS_RELEASE to 

QMAKE_CFLAGS_RELEASE = -EHA

【讨论】:

编辑 qmake.conf 是一种 hack 并且不可移植(例如,您必须为您工作的每台机器上的每个 Qt 版本执行此操作)。请参阅我的答案,了解仅需要编辑 .pro 文件的便携方式。

以上是关于将 /EHa 添加到使用 Microsoft Visual C++ 编译器的 QtCreator的主要内容,如果未能解决你的问题,请参考以下文章

如果同时指定 EHsc 和 EHa 会发生啥

MSVC - /EHsc 与 /EHa(同步与异步异常处理)

如何在 Visual Studio 2003 上指定 /EHa

使用 Microsoft Graph API 将在线会议 URL 添加到事件

如何使用Microsoft speech将文本到语音和语音到文本功能添加到SIP软件

如何将自定义选项添加到 Microsoft Edge 右键菜单?