Qt5和OpenGL:stdlib.h:没有这样的文件或目录

时间:2019-02-25 03:23:20

标签: c++ opengl qt-creator glfw

我开始研究如何在Qt5项目中集成GLFW,GLAD和OpenGL。我收到此stdlib.h无此类文件或目录错误。 我尝试运行的示例是from official OpenGL documentationThis document很好地描述了运行项目的过程以及此处的所有其他会话。

我的stdlib.h出现在/usr/include/stdlib.h上,可以从此打印屏幕上看到:

path 除此之外,我还有一个奇怪的错误,编译器期望使用大括号,但无法弄清楚该错误的原因:

bracket error 错误的更详细说明在这里:

detailed_error 我对此错误进行了很多研究,我查看了herehere甚至使用了this source,但无法弄清楚问题出在哪里以及如何链接库,这是已经在显示的路径中。

代码片段为:

helloOpenGL.pro

TEMPLATE = app
CONFIG += console c++11
CONFIG -= app_bundle
CONFIG -= qt
SOURCES += \
        main.cpp

LIBS += -L "/usr/lib" \
      -lX11 -lpthread -lXrandr -lXi -ldl -lGL

INCLUDEPATH += "/usr/include"
LIBS += -L "/usr/include/GLFW" \
      -lglfw3

和我在 main.cpp 上拥有的主要内容如下:

#include <../glad/glad.h>
#include <../GLFW/glfw3.h>
#include <iostream>
#include <stdlib.h>

感谢您在此问题上的发言。

1 个答案:

答案 0 :(得分:1)

尝试更改

#include <../glad/glad.h>
#include <../GLFW/glfw3.h>
#include <iostream>
#include <stdlib.h>

#include <cstdlib>
#include <iostream>
#include "../glad/glad.h"
#include "../GLFW/glfw3.h"

,然后查看是否可以更改错误。通过stdlib.h切换到cstdlib是因为stdlib.h是一个C头文件而不是C ++头文件,并且cstdlib做了一些名称空间的东西和一些小的修改,使其变得更加C ++了,如here所述。至于将带有高兴和GLFW标头的<>更改为“”,那只是改变了预处理器在搜索标头的位置,这些标头也可能与您的错误有关。

对于此问题,C ++中的标头及其顺序很重要。我有一种直觉,认为这里的订购引起了一些问题。请对其进行更改,如果尚未解决,则希望它能揭示有关该问题的更多信息。