Qt5 & OpenGL: stdlib.h: 没有那个文件或目录
Qt5 & OpenGL: stdlib.h: No such file or directory
我开始研究如何在我的Qt5项目中集成GLFW、GLAD和OpenGL。我收到此 stdlib.h
no such file or directory 错误。
我尝试 运行 的示例是 from official OpenGL documentation。
This document 很好地描述了 运行 项目的过程以及从这里开始的所有其他会议。
我的 stdlib.h
出现在 /usr/include/stdlib.h
上,可以从这个打印屏幕上看到:
除此之外,我还有一个奇怪的错误,编译器需要花括号,但无法找出这个错误的原因:
更详细的错误描述如下:
我一直在研究这个错误,我看了 here, and here and even I used this source 但无法弄清楚问题是什么以及如何 link 库,它已经在显示的路径中。
代码片段为:
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>
感谢您阐明这个问题。
尝试改变
#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 header 而不是 C++ header,并且 cstdlib 做了一些命名空间的事情和一些轻微的修改以使其更多C++ish 描述 here。至于用 glad 和 GLFW headers 将 <> 更改为“”,这只是改变了预处理器搜索 headers 的位置,这也可能与您的错误有关。
至于问题,headers 及其在 C++ 中的顺序很重要。我有一种直觉,这里的排序导致了一些问题。请改变它,如果它没有修复,希望它能揭示更多关于这个问题的信息。
我开始研究如何在我的Qt5项目中集成GLFW、GLAD和OpenGL。我收到此 stdlib.h
no such file or directory 错误。
我尝试 运行 的示例是 from official OpenGL documentation。
This document 很好地描述了 运行 项目的过程以及从这里开始的所有其他会议。
我的 stdlib.h
出现在 /usr/include/stdlib.h
上,可以从这个打印屏幕上看到:
代码片段为:
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>
感谢您阐明这个问题。
尝试改变
#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 header 而不是 C++ header,并且 cstdlib 做了一些命名空间的事情和一些轻微的修改以使其更多C++ish 描述 here。至于用 glad 和 GLFW headers 将 <> 更改为“”,这只是改变了预处理器搜索 headers 的位置,这也可能与您的错误有关。
至于问题,headers 及其在 C++ 中的顺序很重要。我有一种直觉,这里的排序导致了一些问题。请改变它,如果它没有修复,希望它能揭示更多关于这个问题的信息。