到目前为止,现有的 C++ 多项目在 QT 中使用 CMake 2.8。我们想继续在 Visual Studio 2010 中维护它。我在 CMake 中使用选项生成了 Visual Studio 项目,-G "Visual Studio 10"
但现在我无法编译它们,原因如下:
在项目中,我们使用了一个众所周知的宏,例如在这个问题中讨论了它。
#define DISALLOW_COPY_AND_ASSIGN(TypeName) \
TypeName(const TypeName&); \
void operator=(const TypeName&)
该宏在 CMake 中定义,以便将其作为预处理器定义提供给编译器 (cl.exe):
add_definitions(-DDISALLOW_COPY_AND_ASSIGN\(TypeName\)=\" TypeName(const TypeName&)\; void operator=(const TypeName&)\; \")
Visual Studio 不接受 CMake 的输出,并在代码中使用宏的任何位置引发编译错误。什么是正确的语法,以便 CMake 可以为 Visual Studio 2010 正确生成它?