Qt5 MSVC代码编译问题
问题
在Qt5.12.9上面编译上位机项目,一直编译好端端的,代码加入中文注释后,就编译报错了
11:34:23: 为项目pump-link执行步骤 ...
11:34:23: 正在启动 "C:\Program Files\CMake\bin\cmake.exe" --build . --target all[0/1 ?/sec] Re-running CMake...
-- Configuring done
-- Generating done
-- Build files have been written to: E:/workspace/pump-link/build
[1/12 5.3/sec] Automatic MOC and UIC for target pump-link
[2/8 1.3/sec] Building CXX object CMakeFiles\pump-link.dir\serial_manager.cpp.obj
FAILED: CMakeFiles/pump-link.dir/serial_manager.cpp.obj
C:\PROGRA~2\MICROS~2\2017\COMMUN~1\VC\Tools\MSVC\1416~1.270\bin\HostX64\x64\cl.exe /nologo /TP -DQT_CORE_LIB -DQT_GUI_LIB -DQT_SERIALPORT_LIB -DQT_WIDGETS_LIB -IE:\workspace\pump-link\build -IE:\workspace\pump-link -IE:\workspace\pump-link\build\pump-link_autogen\include -ID:\software\Qt5.12.9\5.12.9\msvc2017_64\include -ID:\software\Qt5.12.9\5.12.9\msvc2017_64\include\QtWidgets -ID:\software\Qt5.12.9\5.12.9\msvc2017_64\include\QtGui -ID:\software\Qt5.12.9\5.12.9\msvc2017_64\include\QtANGLE -ID:\software\Qt5.12.9\5.12.9\msvc2017_64\include\QtCore -ID:\software\Qt5.12.9\5.12.9\msvc2017_64\.\mkspecs\win32-msvc -ID:\software\Qt5.12.9\5.12.9\msvc2017_64\include\QtSerialPort /DWIN32 /D_WINDOWS /W3 /GR /EHsc /MDd /Zi /Ob0 /Od /RTC1 /showIncludes /FoCMakeFiles\pump-link.dir\serial_manager.cpp.obj /FdCMakeFiles\pump-link.dir\ /FS -c E:\workspace\pump-link\serial_manager.cpp
e:\workspace\pump-link\serial_manager.h: warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
e:\workspace\pump-link\levitation_protocol.h: warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
e:\workspace\pump-link\levitation_protocol.h(46): error C2270: “totalBytes”: 非成员函数上不允许修饰符
e:\workspace\pump-link\levitation_protocol.h(49): error C2059: 语法错误:“}”
e:\workspace\pump-link\levitation_protocol.h(49): error C2143: 语法错误: 缺少“;”(在“}”的前面)
e:\workspace\pump-link\levitation_protocol.h(71): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
e:\workspace\pump-link\levitation_protocol.h(71): error C2143: 语法错误: 缺少“,”(在“&”的前面)
e:\workspace\pump-link\levitation_protocol.h(74): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
e:\workspace\pump-link\levitation_protocol.h(74): error C2143: 语法错误: 缺少“,”(在“&”的前面)
e:\workspace\pump-link\serial_manager.h(51): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
e:\workspace\pump-link\serial_manager.h(51): error C2143: 语法错误: 缺少“,”(在“&”的前面)
e:\workspace\pump-link\serial_dialog.h: warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
E:\workspace\pump-link\serial_manager.cpp(11): error C2039: “showSerialDialog”: 不是“SerialManager”的成员
e:\workspace\pump-link\serial_manager.h(8): note: 参见“SerialManager”的声明
E:\workspace\pump-link\serial_manager.cpp(17): error C2355: “this”: 只能在非静态成员函数或非静态数据成员初始值设定项的内部引用
E:\workspace\pump-link\serial_manager.cpp(18): error C2065: “m_serial”: 未声明的标识符
E:\workspace\pump-link\serial_manager.cpp(28): error C3861: “openSerial”: 找不到标识符
E:\workspace\pump-link\serial_manager.cpp(36): error C3861: “closeSerial”: 找不到标识符
E:\workspace\pump-link\serial_manager.cpp(17): error C3861: “connect”: 找不到标识符
E:\workspace\pump-link\serial_manager.cpp(42): error C2355: “this”: 只能在非静态成员函数或非静态数据成员初始值设定项的内部引用
E:\workspace\pump-link\serial_manager.cpp(43): error C2355: “this”: 只能在非静态成员函数或非静态数据成员初始值设定项的内部引用
E:\workspace\pump-link\serial_manager.cpp(43): error C2039: “writeData”: 不是“showSerialDialog::<lambda_37826c87e823e91ae40976ac90190cf3>”的成员
E:\workspace\pump-link\serial_manager.cpp(44): note: 参见“showSerialDialog::<lambda_37826c87e823e91ae40976ac90190cf3>”的声明
E:\workspace\pump-link\serial_manager.cpp(43): error C2039: “__this”: 不是“showSerialDialog::<lambda_37826c87e823e91ae40976ac90190cf3>”的成员
E:\workspace\pump-link\serial_manager.cpp(44): note: 参见“showSerialDialog::<lambda_37826c87e823e91ae40976ac90190cf3>”的声明
E:\workspace\pump-link\serial_manager.cpp(42): error C3861: “connect”: 找不到标识符
E:\workspace\pump-link\serial_manager.cpp(47): error C3861: “connect”: 找不到标识符
E:\workspace\pump-link\serial_manager.cpp(79): error C3861: “serialOpened”: 找不到标识符
E:\workspace\pump-link\serial_manager.cpp(100): error C2039: “isSerialOpen”: 不是“SerialManager”的成员
e:\workspace\pump-link\serial_manager.h(8): note: 参见“SerialManager”的声明
E:\workspace\pump-link\serial_manager.cpp(101): error C2270: “isSerialOpen”: 非成员函数上不允许修饰符
E:\workspace\pump-link\serial_manager.cpp(102): error C2065: “m_serial”: 未声明的标识符
E:\workspace\pump-link\serial_manager.cpp(105): error C2039: “onReadyRead”: 不是“SerialManager”的成员
e:\workspace\pump-link\serial_manager.h(8): note: 参见“SerialManager”的声明
E:\workspace\pump-link\serial_manager.cpp(107): error C2065: “m_serial”: 未声明的标识符
E:\workspace\pump-link\serial_manager.cpp(111): error C3861: “readData”: 找不到标识符
E:\workspace\pump-link\serial_manager.cpp(123): error C2065: “m_protocol”: 未声明的标识符
E:\workspace\pump-link\serial_manager.cpp(144): error C2039: “responseReceived”: 不是“LevitationProtocol”的成员
e:\workspace\pump-link\levitation_protocol.h(51): note: 参见“LevitationProtocol”的声明
E:\workspace\pump-link\serial_manager.cpp(144): error C2276: “&”: 绑定成员函数表达式上的非法操作
E:\workspace\pump-link\serial_manager.cpp(144): error C2664: “QMetaObject::Connection QObject::connect(const QObject *,const char *,const char *,Qt::ConnectionType) const”: 无法将参数 2 从“SerialManager *”转换为“const char *”
E:\workspace\pump-link\serial_manager.cpp(145): note: 与指向的类型无关;强制转换要求 reinterpret_cast、C 样式强制转换或函数样式强制转换
E:\workspace\pump-link\serial_manager.cpp(149): error C2039: “onReadyRead”: 不是“SerialManager”的成员
e:\workspace\pump-link\serial_manager.h(8): note: 参见“SerialManager”的声明
E:\workspace\pump-link\serial_manager.cpp(172): error C2039: “packRequestPacket”: 不是“LevitationProtocol”的成员
e:\workspace\pump-link\levitation_protocol.h(51): note: 参见“LevitationProtocol”的声明
E:\workspace\pump-link\serial_manager.cpp(184): error C2039: “packCommandPacket”: 不是“LevitationProtocol”的成员
e:\workspace\pump-link\levitation_protocol.h(51): note: 参见“LevitationProtocol”的声明
[3/8 2.0/sec] Building CXX object CMakeFiles\pump-link.dir\pump-link_autogen\mocs_compilation.cpp.obj
FAILED: CMakeFiles/pump-link.dir/pump-link_autogen/mocs_compilation.cpp.obj
C:\PROGRA~2\MICROS~2\2017\COMMUN~1\VC\Tools\MSVC\1416~1.270\bin\HostX64\x64\cl.exe /nologo /TP -DQT_CORE_LIB -DQT_GUI_LIB -DQT_SERIALPORT_LIB -DQT_WIDGETS_LIB -IE:\workspace\pump-link\build -IE:\workspace\pump-link -IE:\workspace\pump-link\build\pump-link_autogen\include -ID:\software\Qt5.12.9\5.12.9\msvc2017_64\include -ID:\software\Qt5.12.9\5.12.9\msvc2017_64\include\QtWidgets -ID:\software\Qt5.12.9\5.12.9\msvc2017_64\include\QtGui -ID:\software\Qt5.12.9\5.12.9\msvc2017_64\include\QtANGLE -ID:\software\Qt5.12.9\5.12.9\msvc2017_64\include\QtCore -ID:\software\Qt5.12.9\5.12.9\msvc2017_64\.\mkspecs\win32-msvc -ID:\software\Qt5.12.9\5.12.9\msvc2017_64\include\QtSerialPort /DWIN32 /D_WINDOWS /W3 /GR /EHsc /MDd /Zi /Ob0 /Od /RTC1 /showIncludes /FoCMakeFiles\pump-link.dir\pump-link_autogen\mocs_compilation.cpp.obj /FdCMakeFiles\pump-link.dir\ /FS -c E:\workspace\pump-link\build\pump-link_autogen\mocs_compilation.cpp
e:\workspace\pump-link\build\pump-link_autogen\ewiega46ww\../../../levitation_protocol.h: warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
e:\workspace\pump-link\build\pump-link_autogen\ewiega46ww\../../../levitation_protocol.h(46): error C2270: “totalBytes”: 非成员函数上不允许修饰符
e:\workspace\pump-link\build\pump-link_autogen\ewiega46ww\../../../levitation_protocol.h(49): error C2059: 语法错误:“}”
e:\workspace\pump-link\build\pump-link_autogen\ewiega46ww\../../../levitation_protocol.h(49): error C2143: 语法错误: 缺少“;”(在“}”的前面)
e:\workspace\pump-link\build\pump-link_autogen\ewiega46ww\../../../levitation_protocol.h(71): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
e:\workspace\pump-link\build\pump-link_autogen\ewiega46ww\../../../levitation_protocol.h(71): error C2143: 语法错误: 缺少“,”(在“&”的前面)
e:\workspace\pump-link\build\pump-link_autogen\ewiega46ww\../../../levitation_protocol.h(74): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
e:\workspace\pump-link\build\pump-link_autogen\ewiega46ww\../../../levitation_protocol.h(74): error C2143: 语法错误: 缺少“,”(在“&”的前面)
e:\workspace\pump-link\build\pump-link_autogen\EWIEGA46WW/moc_levitation_protocol.cpp(89): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
e:\workspace\pump-link\build\pump-link_autogen\EWIEGA46WW/moc_levitation_protocol.cpp(89): error C2146: 语法错误: 缺少“>”(在标识符“DataFrame”的前面)
e:\workspace\pump-link\build\pump-link_autogen\EWIEGA46WW/moc_levitation_protocol.cpp(90): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
e:\workspace\pump-link\build\pump-link_autogen\EWIEGA46WW/moc_levitation_protocol.cpp(90): error C2146: 语法错误: 缺少“>”(在标识符“SensorData”的前面)
e:\workspace\pump-link\build\pump-link_autogen\EWIEGA46WW/moc_levitation_protocol.cpp(91): error C2039: “responseReceived”: 不是“LevitationProtocol”的成员
e:\workspace\pump-link\build\pump-link_autogen\ewiega46ww\../../../levitation_protocol.h(51): note: 参见“LevitationProtocol”的声明
e:\workspace\pump-link\build\pump-link_autogen\EWIEGA46WW/moc_levitation_protocol.cpp(98): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
e:\workspace\pump-link\build\pump-link_autogen\EWIEGA46WW/moc_levitation_protocol.cpp(98): error C2143: 语法错误: 缺少“,”(在“&”的前面)
e:\workspace\pump-link\build\pump-link_autogen\EWIEGA46WW/moc_levitation_protocol.cpp(105): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
e:\workspace\pump-link\build\pump-link_autogen\EWIEGA46WW/moc_levitation_protocol.cpp(105): error C2143: 语法错误: 缺少“,”(在“&”的前面)
e:\workspace\pump-link\build\pump-link_autogen\EWIEGA46WW/moc_levitation_protocol.cpp(113): error C2039: “responseReceived”: 不是“LevitationProtocol”的成员
e:\workspace\pump-link\build\pump-link_autogen\ewiega46ww\../../../levitation_protocol.h(51): note: 参见“LevitationProtocol”的声明
e:\workspace\pump-link\build\pump-link_autogen\EWIEGA46WW/moc_levitation_protocol.cpp(113): error C2065: “responseReceived”: 未声明的标识符
e:\workspace\pump-link\build\pump-link_autogen\EWIEGA46WW/moc_levitation_protocol.cpp(169): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
e:\workspace\pump-link\build\pump-link_autogen\EWIEGA46WW/moc_levitation_protocol.cpp(169): error C2143: 语法错误: 缺少“,”(在“&”的前面)
e:\workspace\pump-link\build\pump-link_autogen\EWIEGA46WW/moc_levitation_protocol.cpp(171): error C2065: “_t1”: 未声明的标识符
e:\workspace\pump-link\build\pump-link_autogen\EWIEGA46WW/moc_levitation_protocol.cpp(176): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
e:\workspace\pump-link\build\pump-link_autogen\EWIEGA46WW/moc_levitation_protocol.cpp(176): error C2143: 语法错误: 缺少“,”(在“&”的前面)
e:\workspace\pump-link\build\pump-link_autogen\EWIEGA46WW/moc_levitation_protocol.cpp(178): error C2065: “_t1”: 未声明的标识符
e:\workspace\pump-link\build\pump-link_autogen\EWIEGA46WW/moc_levitation_protocol.cpp(183): error C2039: “responseReceived”: 不是“LevitationProtocol”的成员
e:\workspace\pump-link\build\pump-link_autogen\ewiega46ww\../../../levitation_protocol.h(51): note: 参见“LevitationProtocol”的声明
e:\workspace\pump-link\build\pump-link_autogen\EWIEGA46WW/moc_levitation_protocol.cpp(186): error C2355: “this”: 只能在非静态成员函数或非静态数据成员初始值设定项的内部引用
e:\workspace\pump-link\build\pump-link_autogen\EWIEGA46WW/moc_levitation_protocol.cpp(186): error C2065: “staticMetaObject”: 未声明的标识符
e:\workspace\pump-link\build\pump-link_autogen\ewiega46ww\../../../measurement_dialog.h: warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
e:\workspace\pump-link\build\pump-link_autogen\EWIEGA46WW/moc_measurement_dialog.cpp(74): error C2039: “updateSensorData”: 不是“MeasurementDialog”的成员
e:\workspace\pump-link\build\pump-link_autogen\ewiega46ww\../../../measurement_dialog.h(11): note: 参见“MeasurementDialog”的声明
e:\workspace\pump-link\build\pump-link_autogen\EWIEGA46WW/moc_measurement_dialog.cpp(74): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
e:\workspace\pump-link\build\pump-link_autogen\EWIEGA46WW/moc_measurement_dialog.cpp(74): error C2146: 语法错误: 缺少“>”(在标识符“SensorData”的前面)
e:\workspace\pump-link\build\pump-link_autogen\ewiega46ww\../../../serial_dialog.h: warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
e:\workspace\pump-link\build\pump-link_autogen\EWIEGA46WW/moc_serial_dialog.cpp(94): error C2039: “onSerialOpened”: 不是“SerialDialog”的成员
e:\workspace\pump-link\build\pump-link_autogen\ewiega46ww\../../../serial_dialog.h(12): note: 参见“SerialDialog”的声明
e:\workspace\pump-link\build\pump-link_autogen\ewiega46ww\../../../serial_manager.h: warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
e:\workspace\pump-link\build\pump-link_autogen\ewiega46ww\../../../serial_manager.h(51): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
e:\workspace\pump-link\build\pump-link_autogen\ewiega46ww\../../../serial_manager.h(51): error C2143: 语法错误: 缺少“,”(在“&”的前面)
e:\workspace\pump-link\build\pump-link_autogen\EWIEGA46WW/moc_serial_manager.cpp(105): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
e:\workspace\pump-link\build\pump-link_autogen\EWIEGA46WW/moc_serial_manager.cpp(105): error C2146: 语法错误: 缺少“>”(在标识符“SensorData”的前面)
e:\workspace\pump-link\build\pump-link_autogen\EWIEGA46WW/moc_serial_manager.cpp(107): error C2039: “serialOpened”: 不是“SerialManager”的成员
e:\workspace\pump-link\build\pump-link_autogen\ewiega46ww\../../../serial_manager.h(8): note: 参见“SerialManager”的声明
e:\workspace\pump-link\build\pump-link_autogen\EWIEGA46WW/moc_serial_manager.cpp(110): error C2039: “onReadyRead”: 不是“SerialManager”的成员
e:\workspace\pump-link\build\pump-link_autogen\ewiega46ww\../../../serial_manager.h(8): note: 参见“SerialManager”的声明
e:\workspace\pump-link\build\pump-link_autogen\EWIEGA46WW/moc_serial_manager.cpp(123): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
e:\workspace\pump-link\build\pump-link_autogen\EWIEGA46WW/moc_serial_manager.cpp(123): error C2143: 语法错误: 缺少“,”(在“&”的前面)
e:\workspace\pump-link\build\pump-link_autogen\EWIEGA46WW/moc_serial_manager.cpp(138): error C2039: “serialOpened”: 不是“SerialManager”的成员
e:\workspace\pump-link\build\pump-link_autogen\ewiega46ww\../../../serial_manager.h(8): note: 参见“SerialManager”的声明
e:\workspace\pump-link\build\pump-link_autogen\EWIEGA46WW/moc_serial_manager.cpp(138): error C2065: “serialOpened”: 未声明的标识符
e:\workspace\pump-link\build\pump-link_autogen\EWIEGA46WW/moc_serial_manager.cpp(208): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
e:\workspace\pump-link\build\pump-link_autogen\EWIEGA46WW/moc_serial_manager.cpp(208): error C2143: 语法错误: 缺少“,”(在“&”的前面)
e:\workspace\pump-link\build\pump-link_autogen\EWIEGA46WW/moc_serial_manager.cpp(210): error C2065: “_t1”: 未声明的标识符
e:\workspace\pump-link\build\pump-link_autogen\EWIEGA46WW/moc_serial_manager.cpp(222): error C2039: “serialOpened”: 不是“SerialManager”的成员
e:\workspace\pump-link\build\pump-link_autogen\ewiega46ww\../../../serial_manager.h(8): note: 参见“SerialManager”的声明
e:\workspace\pump-link\build\pump-link_autogen\EWIEGA46WW/moc_serial_manager.cpp(225): error C2355: “this”: 只能在非静态成员函数或非静态数据成员初始值设定项的内部引用
e:\workspace\pump-link\build\pump-link_autogen\EWIEGA46WW/moc_serial_manager.cpp(225): error C2065: “staticMetaObject”: 未声明的标识符
[4/8 2.6/sec] Building CXX object CMakeFiles\pump-link.dir\main_window.cpp.obj
FAILED: CMakeFiles/pump-link.dir/main_window.cpp.obj
C:\PROGRA~2\MICROS~2\2017\COMMUN~1\VC\Tools\MSVC\1416~1.270\bin\HostX64\x64\cl.exe /nologo /TP -DQT_CORE_LIB -DQT_GUI_LIB -DQT_SERIALPORT_LIB -DQT_WIDGETS_LIB -IE:\workspace\pump-link\build -IE:\workspace\pump-link -IE:\workspace\pump-link\build\pump-link_autogen\include -ID:\software\Qt5.12.9\5.12.9\msvc2017_64\include -ID:\software\Qt5.12.9\5.12.9\msvc2017_64\include\QtWidgets -ID:\software\Qt5.12.9\5.12.9\msvc2017_64\include\QtGui -ID:\software\Qt5.12.9\5.12.9\msvc2017_64\include\QtANGLE -ID:\software\Qt5.12.9\5.12.9\msvc2017_64\include\QtCore -ID:\software\Qt5.12.9\5.12.9\msvc2017_64\.\mkspecs\win32-msvc -ID:\software\Qt5.12.9\5.12.9\msvc2017_64\include\QtSerialPort /DWIN32 /D_WINDOWS /W3 /GR /EHsc /MDd /Zi /Ob0 /Od /RTC1 /showIncludes /FoCMakeFiles\pump-link.dir\main_window.cpp.obj /FdCMakeFiles\pump-link.dir\ /FS -c E:\workspace\pump-link\main_window.cpp
e:\workspace\pump-link\serial_manager.h: warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
e:\workspace\pump-link\levitation_protocol.h: warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
e:\workspace\pump-link\levitation_protocol.h(46): error C2270: “totalBytes”: 非成员函数上不允许修饰符
e:\workspace\pump-link\levitation_protocol.h(49): error C2059: 语法错误:“}”
e:\workspace\pump-link\levitation_protocol.h(49): error C2143: 语法错误: 缺少“;”(在“}”的前面)
e:\workspace\pump-link\levitation_protocol.h(71): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
e:\workspace\pump-link\levitation_protocol.h(71): error C2143: 语法错误: 缺少“,”(在“&”的前面)
e:\workspace\pump-link\levitation_protocol.h(74): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
e:\workspace\pump-link\levitation_protocol.h(74): error C2143: 语法错误: 缺少“,”(在“&”的前面)
e:\workspace\pump-link\serial_manager.h(51): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
e:\workspace\pump-link\serial_manager.h(51): error C2143: 语法错误: 缺少“,”(在“&”的前面)
e:\workspace\pump-link\measurement_dialog.h: warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
E:\workspace\pump-link\main_window.cpp(16): error C2039: “showSerialDialog”: 不是“SerialManager”的成员
e:\workspace\pump-link\serial_manager.h(8): note: 参见“SerialManager”的声明
E:\workspace\pump-link\main_window.cpp(16): error C2039: “__this”: 不是“SerialManager”的成员
e:\workspace\pump-link\serial_manager.h(8): note: 参见“SerialManager”的声明
E:\workspace\pump-link\main_window.cpp(20): error C2039: “showSerialDialog”: 不是“SerialManager”的成员
e:\workspace\pump-link\serial_manager.h(8): note: 参见“SerialManager”的声明
E:\workspace\pump-link\main_window.cpp(20): error C2039: “__this”: 不是“SerialManager”的成员
e:\workspace\pump-link\serial_manager.h(8): note: 参见“SerialManager”的声明
[5/8 3.3/sec] Building CXX object CMakeFiles\pump-link.dir\levitation_protocol.cpp.obj
FAILED: CMakeFiles/pump-link.dir/levitation_protocol.cpp.obj
C:\PROGRA~2\MICROS~2\2017\COMMUN~1\VC\Tools\MSVC\1416~1.270\bin\HostX64\x64\cl.exe /nologo /TP -DQT_CORE_LIB -DQT_GUI_LIB -DQT_SERIALPORT_LIB -DQT_WIDGETS_LIB -IE:\workspace\pump-link\build -IE:\workspace\pump-link -IE:\workspace\pump-link\build\pump-link_autogen\include -ID:\software\Qt5.12.9\5.12.9\msvc2017_64\include -ID:\software\Qt5.12.9\5.12.9\msvc2017_64\include\QtWidgets -ID:\software\Qt5.12.9\5.12.9\msvc2017_64\include\QtGui -ID:\software\Qt5.12.9\5.12.9\msvc2017_64\include\QtANGLE -ID:\software\Qt5.12.9\5.12.9\msvc2017_64\include\QtCore -ID:\software\Qt5.12.9\5.12.9\msvc2017_64\.\mkspecs\win32-msvc -ID:\software\Qt5.12.9\5.12.9\msvc2017_64\include\QtSerialPort /DWIN32 /D_WINDOWS /W3 /GR /EHsc /MDd /Zi /Ob0 /Od /RTC1 /showIncludes /FoCMakeFiles\pump-link.dir\levitation_protocol.cpp.obj /FdCMakeFiles\pump-link.dir\ /FS -c E:\workspace\pump-link\levitation_protocol.cpp
E:\workspace\pump-link\levitation_protocol.cpp: warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
e:\workspace\pump-link\levitation_protocol.h: warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
e:\workspace\pump-link\levitation_protocol.h(46): error C2270: “totalBytes”: 非成员函数上不允许修饰符
e:\workspace\pump-link\levitation_protocol.h(49): error C2059: 语法错误:“}”
e:\workspace\pump-link\levitation_protocol.h(49): error C2143: 语法错误: 缺少“;”(在“}”的前面)
e:\workspace\pump-link\levitation_protocol.h(71): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
e:\workspace\pump-link\levitation_protocol.h(71): error C2143: 语法错误: 缺少“,”(在“&”的前面)
e:\workspace\pump-link\levitation_protocol.h(74): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
e:\workspace\pump-link\levitation_protocol.h(74): error C2143: 语法错误: 缺少“,”(在“&”的前面)
E:\workspace\pump-link\levitation_protocol.cpp(6): error C2614: “LevitationProtocol”: 非法的成员初始化:“m_waitingForHeader”不是基或成员
E:\workspace\pump-link\levitation_protocol.cpp(14): error C3861: “processBuffer”: 找不到标识符
E:\workspace\pump-link\levitation_protocol.cpp(17): error C2039: “processBuffer”: 不是“LevitationProtocol”的成员
e:\workspace\pump-link\levitation_protocol.h(51): note: 参见“LevitationProtocol”的声明
E:\workspace\pump-link\levitation_protocol.cpp(19): error C2065: “m_receiveBuffer”: 未声明的标识符
E:\workspace\pump-link\levitation_protocol.cpp(22): error C2065: “m_waitingForHeader”: 未声明的标识符
E:\workspace\pump-link\levitation_protocol.cpp(24): error C2065: “m_receiveBuffer”: 未声明的标识符
E:\workspace\pump-link\levitation_protocol.cpp(25): error C2065: “m_receiveBuffer”: 未声明的标识符
E:\workspace\pump-link\levitation_protocol.cpp(26): error C2065: “m_receiveBuffer”: 未声明的标识符
E:\workspace\pump-link\levitation_protocol.cpp(34): error C2065: “m_receiveBuffer”: 未声明的标识符
E:\workspace\pump-link\levitation_protocol.cpp(40): error C2065: “headerIndex”: 未声明的标识符
E:\workspace\pump-link\levitation_protocol.cpp(41): error C2065: “m_receiveBuffer”: 未声明的标识符
E:\workspace\pump-link\levitation_protocol.cpp(41): error C2065: “headerIndex”: 未声明的标识符
E:\workspace\pump-link\levitation_protocol.cpp(44): error C2065: “m_waitingForHeader”: 未声明的标识符
E:\workspace\pump-link\levitation_protocol.cpp(48): error C2065: “m_receiveBuffer”: 未声明的标识符
E:\workspace\pump-link\levitation_protocol.cpp(53): error C2065: “m_receiveBuffer”: 未声明的标识符
E:\workspace\pump-link\levitation_protocol.cpp(56): error C2065: “m_expectedLength”: 未声明的标识符
E:\workspace\pump-link\levitation_protocol.cpp(60): error C2065: “m_expectedLength”: 未声明的标识符
E:\workspace\pump-link\levitation_protocol.cpp(62): error C2065: “m_waitingForHeader”: 未声明的标识符
E:\workspace\pump-link\levitation_protocol.cpp(63): error C2044: 非法 continue
E:\workspace\pump-link\levitation_protocol.cpp(67): error C2059: 语法错误:“return”
E:\workspace\pump-link\levitation_protocol.cpp(68): error C2059: 语法错误:“}”
E:\workspace\pump-link\levitation_protocol.cpp(68): error C2143: 语法错误: 缺少“;”(在“}”的前面)
E:\workspace\pump-link\levitation_protocol.cpp(74): error C2143: 语法错误: 缺少“;”(在“{”的前面)
E:\workspace\pump-link\levitation_protocol.cpp(74): error C2447: “{”: 缺少函数标题(是否是老式的形式表?)
E:\workspace\pump-link\levitation_protocol.cpp(85): error C2059: 语法错误:“}”
E:\workspace\pump-link\levitation_protocol.cpp(85): error C2143: 语法错误: 缺少“;”(在“}”的前面)
E:\workspace\pump-link\levitation_protocol.cpp(87): error C2143: 语法错误: 缺少“;”(在“}”的前面)
E:\workspace\pump-link\levitation_protocol.cpp(87): error C2059: 语法错误:“}”
E:\workspace\pump-link\levitation_protocol.cpp(91): error C2059: 语法错误:“}”
E:\workspace\pump-link\levitation_protocol.cpp(91): error C2143: 语法错误: 缺少“;”(在“}”的前面)
E:\workspace\pump-link\levitation_protocol.cpp(92): error C2143: 语法错误: 缺少“;”(在“}”的前面)
E:\workspace\pump-link\levitation_protocol.cpp(92): error C2059: 语法错误:“}”
E:\workspace\pump-link\levitation_protocol.cpp(94): error C2039: “parseDataFrame”: 不是“LevitationProtocol”的成员
e:\workspace\pump-link\levitation_protocol.h(51): note: 参见“LevitationProtocol”的声明
E:\workspace\pump-link\levitation_protocol.cpp(95): error C2143: 语法错误: 缺少“;”(在“{”的前面)
E:\workspace\pump-link\levitation_protocol.cpp(95): error C2447: “{”: 缺少函数标题(是否是老式的形式表?)
E:\workspace\pump-link\levitation_protocol.cpp(109): error C2059: 语法错误:“if”
E:\workspace\pump-link\levitation_protocol.cpp(109): error C2143: 语法错误: 缺少“;”(在“{”的前面)
E:\workspace\pump-link\levitation_protocol.cpp(109): error C2447: “{”: 缺少函数标题(是否是老式的形式表?)
E:\workspace\pump-link\levitation_protocol.cpp(115): error C3927: "->": 非函数声明符后不允许尾随返回类型
E:\workspace\pump-link\levitation_protocol.cpp(115): error C3484: 语法错误: 返回类型前应为“->”
E:\workspace\pump-link\levitation_protocol.cpp(115): error C3613: “->”后缺少返回类型(假定为“int”)
E:\workspace\pump-link\levitation_protocol.cpp(115): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
E:\workspace\pump-link\levitation_protocol.cpp(115): error C2146: 语法错误: 缺少“;”(在标识符“frameHeader”的前面)
E:\workspace\pump-link\levitation_protocol.cpp(116): error C3927: "->": 非函数声明符后不允许尾随返回类型
E:\workspace\pump-link\levitation_protocol.cpp(116): error C3484: 语法错误: 返回类型前应为“->”
E:\workspace\pump-link\levitation_protocol.cpp(116): error C3613: “->”后缺少返回类型(假定为“int”)
E:\workspace\pump-link\levitation_protocol.cpp(116): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
E:\workspace\pump-link\levitation_protocol.cpp(116): error C2086: “int frame”: 重定义
E:\workspace\pump-link\levitation_protocol.cpp(115): note: 参见“frame”的声明
E:\workspace\pump-link\levitation_protocol.cpp(116): error C2146: 语法错误: 缺少“;”(在标识符“dataLength”的前面)
E:\workspace\pump-link\levitation_protocol.cpp(117): error C3927: "->": 非函数声明符后不允许尾随返回类型
E:\workspace\pump-link\levitation_protocol.cpp(117): error C3484: 语法错误: 返回类型前应为“->”
E:\workspace\pump-link\levitation_protocol.cpp(117): error C3613: “->”后缺少返回类型(假定为“int”)
E:\workspace\pump-link\levitation_protocol.cpp(117): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
E:\workspace\pump-link\levitation_protocol.cpp(117): error C2086: “int frame”: 重定义
E:\workspace\pump-link\levitation_protocol.cpp(115): note: 参见“frame”的声明
E:\workspace\pump-link\levitation_protocol.cpp(117): error C2146: 语法错误: 缺少“;”(在标识符“deviceId”的前面)
E:\workspace\pump-link\levitation_protocol.cpp(118): error C3927: "->": 非函数声明符后不允许尾随返回类型
E:\workspace\pump-link\levitation_protocol.cpp(118): error C3484: 语法错误: 返回类型前应为“->”
E:\workspace\pump-link\levitation_protocol.cpp(118): error C3613: “->”后缺少返回类型(假定为“int”)
E:\workspace\pump-link\levitation_protocol.cpp(118): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
E:\workspace\pump-link\levitation_protocol.cpp(118): error C2086: “int frame”: 重定义
E:\workspace\pump-link\levitation_protocol.cpp(115): note: 参见“frame”的声明
E:\workspace\pump-link\levitation_protocol.cpp(118): error C2146: 语法错误: 缺少“;”(在标识符“type”的前面)
E:\workspace\pump-link\levitation_protocol.cpp(121): error C2059: 语法错误:“for”
E:\workspace\pump-link\levitation_protocol.cpp(121): error C2143: 语法错误: 缺少“)”(在“;”的前面)
E:\workspace\pump-link\levitation_protocol.cpp(121): error C2143: 语法错误: 缺少“;”(在“<”的前面)
E:\workspace\pump-link\levitation_protocol.cpp(121): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
E:\workspace\pump-link\levitation_protocol.cpp(121): error C2143: 语法错误: 缺少“;”(在“++”的前面)
E:\workspace\pump-link\levitation_protocol.cpp(121): error C2086: “int i”: 重定义
E:\workspace\pump-link\levitation_protocol.cpp(121): note: 参见“i”的声明
E:\workspace\pump-link\levitation_protocol.cpp(121): error C2059: 语法错误:“)”
E:\workspace\pump-link\levitation_protocol.cpp(121): error C2143: 语法错误: 缺少“;”(在“{”的前面)
E:\workspace\pump-link\levitation_protocol.cpp(121): error C2447: “{”: 缺少函数标题(是否是老式的形式表?)
E:\workspace\pump-link\levitation_protocol.cpp(125): error C3927: "->": 非函数声明符后不允许尾随返回类型
E:\workspace\pump-link\levitation_protocol.cpp(125): error C3484: 语法错误: 返回类型前应为“->”
E:\workspace\pump-link\levitation_protocol.cpp(125): error C3613: “->”后缺少返回类型(假定为“int”)
E:\workspace\pump-link\levitation_protocol.cpp(125): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
E:\workspace\pump-link\levitation_protocol.cpp(125): error C2086: “int frame”: 重定义
E:\workspace\pump-link\levitation_protocol.cpp(115): note: 参见“frame”的声明
E:\workspace\pump-link\levitation_protocol.cpp(125): error C2146: 语法错误: 缺少“;”(在标识符“crc”的前面)
E:\workspace\pump-link\levitation_protocol.cpp(126): error C3927: "->": 非函数声明符后不允许尾随返回类型
E:\workspace\pump-link\levitation_protocol.cpp(126): error C3484: 语法错误: 返回类型前应为“->”
E:\workspace\pump-link\levitation_protocol.cpp(126): error C3613: “->”后缺少返回类型(假定为“int”)
E:\workspace\pump-link\levitation_protocol.cpp(126): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
E:\workspace\pump-link\levitation_protocol.cpp(126): error C2086: “int frame”: 重定义
E:\workspace\pump-link\levitation_protocol.cpp(115): note: 参见“frame”的声明
E:\workspace\pump-link\levitation_protocol.cpp(126): error C2146: 语法错误: 缺少“;”(在标识符“frameFooter”的前面)
E:\workspace\pump-link\levitation_protocol.cpp(129): error C2059: 语法错误:“if”
E:\workspace\pump-link\levitation_protocol.cpp(129): error C2143: 语法错误: 缺少“;”(在“{”的前面)
E:\workspace\pump-link\levitation_protocol.cpp(129): error C2447: “{”: 缺少函数标题(是否是老式的形式表?)
E:\workspace\pump-link\levitation_protocol.cpp(137): error C2059: 语法错误:“switch”
E:\workspace\pump-link\levitation_protocol.cpp(137): error C2143: 语法错误: 缺少“;”(在“{”的前面)
E:\workspace\pump-link\levitation_protocol.cpp(137): error C2447: “{”: 缺少函数标题(是否是老式的形式表?)
E:\workspace\pump-link\levitation_protocol.cpp(171): error C2059: 语法错误:“break”
E:\workspace\pump-link\levitation_protocol.cpp(173): error C2059: 语法错误:“case”
E:\workspace\pump-link\levitation_protocol.cpp(174): error C2059: 语法错误:“字符串”
E:\workspace\pump-link\levitation_protocol.cpp(175): error C2059: 语法错误:“break”
E:\workspace\pump-link\levitation_protocol.cpp(177): error C2059: 语法错误:“case”
E:\workspace\pump-link\levitation_protocol.cpp(178): error C2059: 语法错误:“字符串”
E:\workspace\pump-link\levitation_protocol.cpp(179): error C2059: 语法错误:“break”
E:\workspace\pump-link\levitation_protocol.cpp(181): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
E:\workspace\pump-link\levitation_protocol.cpp(181): error C2059: 语法错误:“:”
E:\workspace\pump-link\levitation_protocol.cpp(182): error C2059: 语法错误:“字符串”
E:\workspace\pump-link\levitation_protocol.cpp(183): error C2059: 语法错误:“break”
E:\workspace\pump-link\levitation_protocol.cpp(184): error C2059: 语法错误:“}”
E:\workspace\pump-link\levitation_protocol.cpp(184): error C2143: 语法错误: 缺少“;”(在“}”的前面)
E:\workspace\pump-link\levitation_protocol.cpp(187): error C2059: 语法错误:“}”
E:\workspace\pump-link\levitation_protocol.cpp(187): error C2143: 语法错误: 缺少“;”(在“}”的前面)
E:\workspace\pump-link\levitation_protocol.cpp(189): error C2039: “bytesToWords”: 不是“LevitationProtocol”的成员
e:\workspace\pump-link\levitation_protocol.h(51): note: 参见“LevitationProtocol”的声明
E:\workspace\pump-link\levitation_protocol.cpp(189): fatal error C1003: 错误计数超过 100;正在停止编译
[6/8 3.9/sec] Building CXX object CMakeFiles\pump-link.dir\measurement_dialog.cpp.obj
FAILED: CMakeFiles/pump-link.dir/measurement_dialog.cpp.obj
C:\PROGRA~2\MICROS~2\2017\COMMUN~1\VC\Tools\MSVC\1416~1.270\bin\HostX64\x64\cl.exe /nologo /TP -DQT_CORE_LIB -DQT_GUI_LIB -DQT_SERIALPORT_LIB -DQT_WIDGETS_LIB -IE:\workspace\pump-link\build -IE:\workspace\pump-link -IE:\workspace\pump-link\build\pump-link_autogen\include -ID:\software\Qt5.12.9\5.12.9\msvc2017_64\include -ID:\software\Qt5.12.9\5.12.9\msvc2017_64\include\QtWidgets -ID:\software\Qt5.12.9\5.12.9\msvc2017_64\include\QtGui -ID:\software\Qt5.12.9\5.12.9\msvc2017_64\include\QtANGLE -ID:\software\Qt5.12.9\5.12.9\msvc2017_64\include\QtCore -ID:\software\Qt5.12.9\5.12.9\msvc2017_64\.\mkspecs\win32-msvc -ID:\software\Qt5.12.9\5.12.9\msvc2017_64\include\QtSerialPort /DWIN32 /D_WINDOWS /W3 /GR /EHsc /MDd /Zi /Ob0 /Od /RTC1 /showIncludes /FoCMakeFiles\pump-link.dir\measurement_dialog.cpp.obj /FdCMakeFiles\pump-link.dir\ /FS -c E:\workspace\pump-link\measurement_dialog.cpp
E:\workspace\pump-link\measurement_dialog.cpp: warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
e:\workspace\pump-link\measurement_dialog.h: warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
e:\workspace\pump-link\levitation_protocol.h: warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
e:\workspace\pump-link\levitation_protocol.h(46): error C2270: “totalBytes”: 非成员函数上不允许修饰符
e:\workspace\pump-link\levitation_protocol.h(49): error C2059: 语法错误:“}”
e:\workspace\pump-link\levitation_protocol.h(49): error C2143: 语法错误: 缺少“;”(在“}”的前面)
e:\workspace\pump-link\levitation_protocol.h(71): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
e:\workspace\pump-link\levitation_protocol.h(71): error C2143: 语法错误: 缺少“,”(在“&”的前面)
e:\workspace\pump-link\levitation_protocol.h(74): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
e:\workspace\pump-link\levitation_protocol.h(74): error C2143: 语法错误: 缺少“,”(在“&”的前面)
e:\workspace\pump-link\serial_manager.h: warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
e:\workspace\pump-link\serial_manager.h(51): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
e:\workspace\pump-link\serial_manager.h(51): error C2143: 语法错误: 缺少“,”(在“&”的前面)
E:\workspace\pump-link\measurement_dialog.cpp(15): error C2039: “updateSensorData”: 不是“MeasurementDialog”的成员
e:\workspace\pump-link\measurement_dialog.h(11): note: 参见“MeasurementDialog”的声明
E:\workspace\pump-link\measurement_dialog.cpp(15): error C2065: “updateSensorData”: 未声明的标识符
E:\workspace\pump-link\measurement_dialog.cpp(15): error C2059: 语法错误:“)”
E:\workspace\pump-link\measurement_dialog.cpp(25): error C2039: “updateSensorData”: 不是“MeasurementDialog”的成员
e:\workspace\pump-link\measurement_dialog.h(11): note: 参见“MeasurementDialog”的声明
E:\workspace\pump-link\measurement_dialog.cpp(25): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
E:\workspace\pump-link\measurement_dialog.cpp(25): error C2143: 语法错误: 缺少“,”(在“&”的前面)
E:\workspace\pump-link\measurement_dialog.cpp(28): error C2065: “ui”: 未声明的标识符
E:\workspace\pump-link\measurement_dialog.cpp(28): error C2039: “posXH”: 不是“QVector<uint16_t>”的成员
e:\workspace\pump-link\levitation_protocol.h(41): note: 参见“QVector<uint16_t>”的声明
E:\workspace\pump-link\measurement_dialog.cpp(29): error C2065: “ui”: 未声明的标识符
E:\workspace\pump-link\measurement_dialog.cpp(29): error C2039: “posYH”: 不是“QVector<uint16_t>”的成员
e:\workspace\pump-link\levitation_protocol.h(41): note: 参见“QVector<uint16_t>”的声明
E:\workspace\pump-link\measurement_dialog.cpp(30): error C2065: “ui”: 未声明的标识符
E:\workspace\pump-link\measurement_dialog.cpp(30): error C2039: “VibrationH”: 不是“QVector<uint16_t>”的成员
e:\workspace\pump-link\levitation_protocol.h(41): note: 参见“QVector<uint16_t>”的声明
E:\workspace\pump-link\measurement_dialog.cpp(31): error C2065: “ui”: 未声明的标识符
E:\workspace\pump-link\measurement_dialog.cpp(31): error C2039: “AngleH”: 不是“QVector<uint16_t>”的成员
e:\workspace\pump-link\levitation_protocol.h(41): note: 参见“QVector<uint16_t>”的声明
E:\workspace\pump-link\measurement_dialog.cpp(34): error C2065: “ui”: 未声明的标识符
E:\workspace\pump-link\measurement_dialog.cpp(34): error C2039: “Vibration”: 不是“QVector<uint16_t>”的成员
e:\workspace\pump-link\levitation_protocol.h(41): note: 参见“QVector<uint16_t>”的声明
E:\workspace\pump-link\measurement_dialog.cpp(37): error C2065: “ui”: 未声明的标识符
E:\workspace\pump-link\measurement_dialog.cpp(37): error C2039: “PosXB”: 不是“QVector<uint16_t>”的成员
e:\workspace\pump-link\levitation_protocol.h(41): note: 参见“QVector<uint16_t>”的声明
E:\workspace\pump-link\measurement_dialog.cpp(38): error C2065: “ui”: 未声明的标识符
E:\workspace\pump-link\measurement_dialog.cpp(38): error C2039: “PosYB”: 不是“QVector<uint16_t>”的成员
e:\workspace\pump-link\levitation_protocol.h(41): note: 参见“QVector<uint16_t>”的声明
E:\workspace\pump-link\measurement_dialog.cpp(39): error C2065: “ui”: 未声明的标识符
E:\workspace\pump-link\measurement_dialog.cpp(39): error C2039: “VibrationB”: 不是“QVector<uint16_t>”的成员
e:\workspace\pump-link\levitation_protocol.h(41): note: 参见“QVector<uint16_t>”的声明
E:\workspace\pump-link\measurement_dialog.cpp(40): error C2065: “ui”: 未声明的标识符
E:\workspace\pump-link\measurement_dialog.cpp(40): error C2039: “AngleB”: 不是“QVector<uint16_t>”的成员
e:\workspace\pump-link\levitation_protocol.h(41): note: 参见“QVector<uint16_t>”的声明
[7/8 4.0/sec] Building CXX object CMakeFiles\pump-link.dir\serial_dialog.cpp.obj
FAILED: CMakeFiles/pump-link.dir/serial_dialog.cpp.obj
C:\PROGRA~2\MICROS~2\2017\COMMUN~1\VC\Tools\MSVC\1416~1.270\bin\HostX64\x64\cl.exe /nologo /TP -DQT_CORE_LIB -DQT_GUI_LIB -DQT_SERIALPORT_LIB -DQT_WIDGETS_LIB -IE:\workspace\pump-link\build -IE:\workspace\pump-link -IE:\workspace\pump-link\build\pump-link_autogen\include -ID:\software\Qt5.12.9\5.12.9\msvc2017_64\include -ID:\software\Qt5.12.9\5.12.9\msvc2017_64\include\QtWidgets -ID:\software\Qt5.12.9\5.12.9\msvc2017_64\include\QtGui -ID:\software\Qt5.12.9\5.12.9\msvc2017_64\include\QtANGLE -ID:\software\Qt5.12.9\5.12.9\msvc2017_64\include\QtCore -ID:\software\Qt5.12.9\5.12.9\msvc2017_64\.\mkspecs\win32-msvc -ID:\software\Qt5.12.9\5.12.9\msvc2017_64\include\QtSerialPort /DWIN32 /D_WINDOWS /W3 /GR /EHsc /MDd /Zi /Ob0 /Od /RTC1 /showIncludes /FoCMakeFiles\pump-link.dir\serial_dialog.cpp.obj /FdCMakeFiles\pump-link.dir\ /FS -c E:\workspace\pump-link\serial_dialog.cpp
e:\workspace\pump-link\serial_dialog.h: warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
e:\workspace\pump-link\serial_manager.h: warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
e:\workspace\pump-link\levitation_protocol.h: warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
e:\workspace\pump-link\levitation_protocol.h(46): error C2270: “totalBytes”: 非成员函数上不允许修饰符
e:\workspace\pump-link\levitation_protocol.h(49): error C2059: 语法错误:“}”
e:\workspace\pump-link\levitation_protocol.h(49): error C2143: 语法错误: 缺少“;”(在“}”的前面)
e:\workspace\pump-link\levitation_protocol.h(71): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
e:\workspace\pump-link\levitation_protocol.h(71): error C2143: 语法错误: 缺少“,”(在“&”的前面)
e:\workspace\pump-link\levitation_protocol.h(74): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
e:\workspace\pump-link\levitation_protocol.h(74): error C2143: 语法错误: 缺少“,”(在“&”的前面)
e:\workspace\pump-link\serial_manager.h(51): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
e:\workspace\pump-link\serial_manager.h(51): error C2143: 语法错误: 缺少“,”(在“&”的前面)
E:\workspace\pump-link\serial_dialog.cpp(19): error C2039: “serialOpened”: 不是“SerialManager”的成员
e:\workspace\pump-link\serial_manager.h(8): note: 参见“SerialManager”的声明
E:\workspace\pump-link\serial_dialog.cpp(19): error C2065: “serialOpened”: 未声明的标识符
E:\workspace\pump-link\serial_dialog.cpp(20): error C2039: “onSerialOpened”: 不是“SerialDialog”的成员
e:\workspace\pump-link\serial_dialog.h(12): note: 参见“SerialDialog”的声明
E:\workspace\pump-link\serial_dialog.cpp(20): error C2065: “onSerialOpened”: 未声明的标识符
E:\workspace\pump-link\serial_dialog.cpp(27): error C2039: “isSerialOpen”: 不是“SerialManager”的成员
e:\workspace\pump-link\serial_manager.h(8): note: 参见“SerialManager”的声明
E:\workspace\pump-link\serial_dialog.cpp(168): error C2039: “onSerialOpened”: 不是“SerialDialog”的成员
e:\workspace\pump-link\serial_dialog.h(12): note: 参见“SerialDialog”的声明
E:\workspace\pump-link\serial_dialog.cpp(170): error C2065: “Connected”: 未声明的标识符
E:\workspace\pump-link\serial_dialog.cpp(170): error C3861: “setStatus”: 找不到标识符
ninja: build stopped: subcommand failed.
11:34:27: 进程"C:\Program Files\CMake\bin\cmake.exe"退出,退出代码 1 。
Error while building/deploying project pump-link (kit: Desktop Qt 5.12.9 MSVC2017 64bit)
When executing step "CMake Build"
11:34:27: Elapsed time: 00:03.
注意到有一行关键的warning C4819,这个虽然不是error,但是却影响了编译器对文本的识别,Windows下一般用GBK或者GB2312来保存中文字符
e:\workspace\pump-link\serial_manager.h: warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
e:\workspace\pump-link\levitation_protocol.h: warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
但QtCreator明显更加青睐UTF-8,因为它想做大一统平台

分析
新增的两个头文件levitation_protocol.h和serial_manager.h是中文编码字符集,而QtCreator使用UTF-8字符集,MSVC并不支持(936/GBK)
解决
① 在cmake中指定MSVC使用utf-8方式读取代码文本
if(MSVC)add_compile_options(/source-charset:utf-8)
endif()
② 更换成开源Mingw的Qt工具链
