QtCreator找不到在Linux上运行的stdDef.h [英] QtCreator cannot find stddef.h working on linux

查看:19
本文介绍了QtCreator找不到在Linux上运行的stdDef.h的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我刚刚安装了Qt Creator 4.1.0 基于Qt 5.7.0(GCC 4.9.1 20140922(红帽4.9.1-10),64位)

在我修复了所有的工具包错误后,这个错误让我抓狂,实际上我花了一些时间在Google上寻找合适的编译器。我认为这可能是编译器版本的问题:

/usr/Include/c++/5.3.1/cstddef:45:Error:stdDef.h:没有这样的文件或 目录

我到处都看到Windows的解决方案,但找不到Linux的解决方案,有人有经验如何修复它吗?

屏幕截图

rpm-qa|grep devel|排序

expat-devel-2.1.0-10.fc22.x86_64
fontconfig-devel-2.11.94-4.fc22.x86_64
freetype-devel-2.5.5-2.fc22.x86_64
gdbm-devel-1.11-4.fc22.x86_64
glibc-devel-2.21-13.fc22.i686
glibc-devel-2.21-13.fc22.x86_64
java-1.8.0-openjdk-devel-1.8.0.65-3.b17.fc22.x86_64
kernel-debug-devel-4.2.5-201.fc22.x86_64
kernel-debug-devel-4.2.6-200.fc22.x86_64
kernel-devel-4.2.6-200.fc22.x86_64
libdb-devel-5.3.28-12.fc22.x86_64
libdrm-devel-2.4.61-3.fc22.x86_64
libICE-devel-1.0.9-2.fc22.x86_64
libpng-devel-1.6.16-3.fc22.x86_64
libSM-devel-1.2.2-2.fc22.x86_64
libstdc++-devel-5.3.1-6.fc22.i686
libstdc++-devel-5.3.1-6.fc22.x86_64
libXau-devel-1.0.8-4.fc22.x86_64
libxcb-devel-1.11-8.fc22.x86_64
libXcursor-devel-1.1.14-4.fc22.x86_64
libXdamage-devel-1.1.4-6.fc22.x86_64
libXext-devel-1.3.3-2.fc22.x86_64
libXfixes-devel-5.0.1-4.fc22.x86_64
libXft-devel-2.3.2-2.fc22.x86_64
libXi-devel-1.7.4-2.fc22.x86_64
libXinerama-devel-1.1.3-4.fc22.x86_64
libXrandr-devel-1.4.2-2.fc22.x86_64
libXrender-devel-0.9.9-1.fc22.x86_64
libxshmfence-devel-1.2-1.fc22.x86_64
libXt-devel-1.1.4-10.fc22.x86_64
libXv-devel-1.0.10-2.fc22.x86_64
libXxf86vm-devel-1.1.4-1.fc22.x86_64
libX11-devel-1.6.3-1.fc22.x86_64
mesa-libGL-devel-10.6.9-1.20151008.fc22.x86_64
mesa-libGLU-devel-9.0.0-7.fc22.x86_64
perl-devel-5.20.3-328.fc22.x86_64
python3-devel-3.4.2-6.fc22.x86_64
qt-devel-4.8.7-4.fc22.x86_64
systemtap-devel-2.9-1.fc22.x86_64
systemtap-sdt-devel-2.9-1.fc22.x86_64
xorg-x11-proto-devel-7.7-12.fc21.noarch
zlib-devel-1.2.8-7.fc22.x86_64

推荐答案

如果编译器从终端运行,则应该从QtCreator运行。因此,首先让它在终端上工作。

从终端创建文件main.cpp

#include <cstddef>
int main()
{
    return 0;
}

然后键入命令:

gcc -H main.cpp -o main
  • 如果编译正常,则您在QtCreator中的工具包定义一定有问题。可能要确保stddef.h所在的文件夹在工具包的包含文件列表中。但你不应该这样做。暂时,您可以将包含路径添加到您的项目中(请参见How to add include path in Qt Creator?),以检查这是否真的是问题所在。然后,您需要找到一种方法来永久修复该套件。

  • 如果编译不起作用,请修复您的环境(可能使用sashoalm的注释链接)。QtCreator只是一个IDE,如果你用坏了的编译器运行它,它不会为你修复它。编译输出将显示文件(cstddefstddef.h)的位置(-H选项)。尝试cpp -v以查看搜索包含的文件的位置。

在我的机器上,编译输出给我:

。/usr/Include/c++/4.8/cstddef. /usr/include/x86_64-linux-gnu/c++/4.8/bits/c++config.h..。 /usr/include/x86_64-linux-gnu/c++/4.8/bits/os_defines.h..。 /usr/Include/Featureres.h..... /usr/INCLUDE/x86_64-linux-gnu/sys/cdes.h...... /usr/Include/x86_64-linux-gnu/its/wordsize.h..... /usr/Include/x86_64-linux-gnu/gnu/stubs.h...... /usr/Include/x86_64-linux-gnu/gnu/stubs-64.h... /usr/include/x86_64-linux-gnu/c++/4.8/bits/cpu_defines.h.. /usr/lib/gcc/x86_64-linux-gnu/4.8/include/stddef.h多个包含 防护可能适用于:/usr/Include/c++/4.8/cstddef /usr/Include/x86_64-linux-gnu/its/wordsize.h /usr/Include/x86_64-linux-gnu/gnu/存根-64.h /usr/Include/x86_64-linux-gnu/gnu/stubs.h /usr/lib/gcc/x86_64-linux-gnu/4.8/include/stddef.h

请参阅stddef.h位于/usr/lib/gcc/x86_64-linux-gnu/4.8/include

cpp -v给予:

#include "..." search starts here:
#include <...> search starts here:
 /usr/lib/gcc/x86_64-linux-gnu/4.8/include
 /usr/local/include
 /usr/lib/gcc/x86_64-linux-gnu/4.8/include-fixed
 /usr/include/x86_64-linux-gnu
 /usr/include
End of search list.
注意:如果您手动创建了该工具包,我建议您卸载QtCreator。让GCC在终端上工作,然后重新安装QtCreator。这个应该会自动创建工具包,然后它们应该会工作。

这篇关于QtCreator找不到在Linux上运行的stdDef.h的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆