Qt Creator C1083: 无法打开包括文件:'cstddef':没有那个文件或目录。

3
我试图在Windows 10上使用Qt Creator(Qt5.7.0)构建程序,但是我遇到了错误消息:

D:\Qt\Qt5.7.0\5.7\msvc2015_64\include\QtCore\qglobal.h:45: error: C1083: Cannot open include file: 'cstddef': No such file or directory

我发现这可能是由于缺少Windows SDK引起的,但是我已经安装了它,并运行了vcvarsall.bat,但仍然没有解决问题。我尝试使用"MinGW 5.3.0 32-bit"编译器和"GNU gdb 7.10.1 for MinGW 5.3.0 32-bit"调试器(使用"Microsoft Visual C++ Compiler"也不起作用)。有什么想法吗?

运行vcvarsall.bat,但什么也没有发生。此环境仅适用于您在其中运行vcvarsall.bat的cmd.exe实例。这意味着,除非您从与运行vcvarsall.bat相同的cmd.exe控制台中运行QtCreator,否则无法修复它。 - drescherjm
4个回答

3
首先,在Qt Creator中编译项目时,您使用特定的工具包,绑定到特定安装的Qt版本。确保在Qt Creator中该工具包和Qt版本的配置已经选择了正确的编译器。C++代码通常在编译器之间不具备二进制兼容性,所以如果您安装了适用于MSVC2012的Qt版本,则它只能与该编译器一起使用。如果您没有自己构建Qt,则安装的Qt版本必须与正在使用它的编译器匹配。混合使用MSVC版本或使用MSVC构建的Qt与mingw GCC无法正常工作。
您可以并行拥有多个Qt安装,并且每个安装都可以使用不同的Qt版本和/或编译器。您需要通过将它们添加到Qt版本控制面板中并设置使用这些Qt版本的工具包来让Qt Creator知道它们存在。
自己运行vcvars没有意义,因为它仅为该特定实例的命令处理器设置环境变量。它对Qt Creator没有影响。 Qt Creator的构建系统会自动调用vcvars来设置构建所执行的环境。

1

0

当我尝试使用另一个版本的MSVC时,我的系统路径变量中有MSVC 2012的"bin"目录,导致出现了完全相同的错误。将该目录从"path"中移除后问题得到解决。


0
构建Qt 5.6代码库时,解决了我的构建问题的是在工具链中设置“环境”。

The Kit environment is specified by pressing the "Change" button to the right of "Environment"

这是我使用的环境文本:

INCLUDE=%{Qt:QT_INSTALL_HEADERS}
LIB=%{Qt:QT_INSTALL_LIBS}
LIBPATH=%{Qt:QT_INSTALL_LIBS}
PATH=%{Qt:QT_INSTALL_BINS}

我的回答晚了几年,但我刚遇到这个问题,第一个答案提示我检查工具包中的环境设置。我很惊讶在Qt Creator的工具包对话框中设置环境可以起作用,考虑到它只将Qt安装路径添加到环境中,而缺失的文件cstddef不在C:Qt \ 5.6路径中,而是在C:\ Program Files(x86)\ Windows CE Tools \ SDKs中。 - pixelgrease

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接