编译 moc 文件 Qt 4.5.2 intrin.h 意外类型 "void" Visual Studio 2015

Compiling moc files Qt 4.5.2 intrin.h unexpected type "void" Visual Studio 2015

出于兼容性原因,我有一个使用 visual studio 2008 编译的项目。这真的很痛苦,我正在测试与 visual studio 2015 的兼容性。我有几个 qt 目标文件的自定义构建步骤,通过 MOC 到 运行,然后将它们与构建一起编译。每当我尝试在 2015 年编译其中一个 moc 文件时,我都会得到以下错误序列:

   moc_class.cpp
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\intrin.h(200): error C2062: type 'void' unexpected
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\intrin.h(200): error C2144: syntax error: 'void' should be preceded by '('
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\intrin.h(200): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\intrin.h(200): error C2365: '_InterlockedCompareExchange': redefinition; previous definition was 'function'

为什么会发生这种情况?我在墙上,似乎无法找到有关该问题的任何信息。使用 qt 4.5.2.

Qt4 将无法在 Visual Studio 2015 下运行,除非您使用 Visual Studio 2015 自己从源代码构建 Qt 版本 (4.5.2)。

另一种选择是更改您的项目,使其与 Qt5 兼容。您可以在此处阅读有关如何操作的更多信息:https://wiki.qt.io/Transition_from_Qt_4.x_to_Qt5 .