我有一个项目,我出于兼容性原因使用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。
答案 0 :(得分:0)
除非您使用Visual Studio 2015自己从源代码构建Qt版本(4.5.2),否则Qt4将无法在Visual Studio 2015下运行。
另一个选择是更改项目,使其与Qt5兼容。您可以在此处详细了解如何执行此操作:https://wiki.qt.io/Transition_from_Qt_4.x_to_Qt5。