日常项目开发中。需要对qt5升级到qt6 做cmake兼容配置,在编译中发现,有c++ 编译环境 报错
- 2>C:\Qt\6.5.3\msvc2019_64\include\QtCore/qcompilerdetection.h(1226,1): fatal error C1189: #error: "Qt requires a C++17 compiler, and a suitable value for __cplusplus. On MSVC, you must pass the /Zc:__cplusplus option to the compiler."
- 2>CFrameworkMainWidget.cpp
- 2>C:\Qt\6.5.3\msvc2019_64\include\QtCore/qcompilerdetection.h(1226,1): fatal error C1189: #error: "Qt requires a C++17 compiler, and a suitable value for __cplusplus. On MSVC, you must pass the /Zc:__cplusplus option to the compiler."
- 2>CSliderBar.cpp
- 2>C:\Qt\6.5.3\msvc2019_64\include\QtCore/qcompilerdetection.h(1226,1): fatal error C1189: #error: "Qt requires a C++17 compiler, and a suitable value for __cplusplus. On MSVC, you must pass the /Zc:__cplusplus option to the compiler."
解决办法
- # 设置msvc运行库 需设置在 project 之前
- # https://cmake.org/cmake/help/latest/variable/CMAKE_MSVC_RUNTIME_LIBRARY.html
- set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$
:Debug>DLL" ) -
- # 设置c++标准为17 需设置在 project 之前
- set(CMAKE_CXX_STANDARD 17)
- set(CMAKE_CXX_STANDARD_REQUIRED ON)
- set(CMAKE_CXX_EXTENSIONS OFF)
-
- # 增加编译选项
- add_compile_options("/permissive-")
- add_compile_options("/Zc:__cplusplus")