error C1189: #error : Qt requires a C++11 compiler and yours does not seem to be that.
error C1189: #error : Qt requires a C++11 compiler and yours does not seem to be that
是一个编译错误,指示你正在使用的编译器不支持 C++11 标准,而 Qt 项目需要 C++11 标准的支持。这通常发生在使用较旧版本的编译器时。以下是详细的解决步骤和方法:
1. 确认编译器版本
首先,你需要确认你使用的编译器是否支持 C++11 标准。Qt 项目需要支持 C++11 的编译器,常见的支持 C++11 的编译器版本包括:
- GCC: 4.8 及以上版本
- Clang: 3.3 及以上版本
- MSVC: Visual Studio 2013 及以上版本(MSVC 2012 支持部分 C++11 特性)
在命令行中运行编译器的版本检查命令,例如:
shgcc --version
或者
shclang --version
2. 升级编译器
如果你发现编译器版本过低,无法支持 C++11,需升级到支持 C++11 的版本。以下是升级编译器的方法:
GCC: 通过包管理器(如
apt-get
或yum
)升级到最新版本,或者从 GCC 官网 下载并编译最新版本。Clang: 可以从 LLVM 官网 下载和安装最新版本的 Clang。
MSVC: 通过 Visual Studio 官网 下载最新版本的 Visual Studio(2013 或更高版本)。
3. 设置编译器支持 C++11
确保你的项目配置已启用 C++11 支持。具体步骤如下:
对于 GCC/Clang
在项目的编译选项中添加 -std=c++11
:
shg++ -std=c++11 -o myapp main.cpp
如果你使用 CMake 构建系统,可以在 CMakeLists.txt
文件中添加:
cmakeset(CMAKE_CXX_STANDARD 11)
对于 MSVC
确保你使用的是支持 C++11 的 MSVC 版本(Visual Studio 2013 及以上)。在 Visual Studio 中:
- 打开项目属性。
- 进入
C/C++
->语言
选项。 - 设置
C++语言标准
为ISO C++11
或ISO C++14
(如果支持)。
4. 修改 Qt 项目配置
确保你的 Qt 项目配置文件(*.pro
文件)包含了对 C++11 的支持。例如:
proCONFIG += c++11
这样可以确保 Qt 在编译时使用 C++11 标准。
5. 清理和重新构建
在做了以上更改后,清理旧的构建文件并重新构建项目,以确保所有配置都已正确应用:
shmake clean qmake make
总结
error C1189: #error : Qt requires a C++11 compiler and yours does not seem to be that
错误表明你正在使用的编译器不支持 C++11 标准。要解决此问题,你需要确认并升级到支持 C++11 的编译器,确保项目配置中启用了 C++11 标准的支持,并清理旧的构建文件后重新构建项目。
关键字
C1189, C++11, Qt, 编译器, GCC, Clang, MSVC, 编译器升级, CMake, Visual Studio, -std=c++11
, CONFIG += c++11