我开始研究如何在Qt5项目中集成GLFW,GLAD和OpenGL。我收到此stdlib.h
无此类文件或目录错误。
我尝试运行的示例是from official OpenGL documentation。
This document很好地描述了运行项目的过程以及此处的所有其他会话。
我的stdlib.h
出现在/usr/include/stdlib.h
上,可以从此打印屏幕上看到:
除此之外,我还有一个奇怪的错误,编译器期望使用大括号,但无法弄清楚该错误的原因:
错误的更详细说明在这里:
我对此错误进行了很多研究,我查看了here和here甚至使用了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>
感谢您在此问题上的发言。
答案 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 ++中的标头及其顺序很重要。我有一种直觉,认为这里的订购引起了一些问题。请对其进行更改,如果尚未解决,则希望它能揭示有关该问题的更多信息。