Qt5 & OpenGL: stdlib.h: Нет такого файла или каталога - PullRequest
0 голосов
/ 25 февраля 2019

Я начал изучать, как интегрировать GLFW, GLAD и OpenGL в мой проект Qt5.Я получаю это stdlib.h нет такого файла или ошибка каталога.Пример, который я пытаюсь запустить, - из официальной документации OpenGL . Этот документ очень хорошо описывает процедуру запуска проекта и отсюда все другие сеансы.

Мой stdlib.h присутствует на /usr/include/stdlib.h, как это можно увидеть из этой печатиscreen:

path В дополнение к этому у меня есть странная ошибка, когда компилятор ожидает фигурные скобки, но не может выяснить причину этой ошибки:

bracket error Более подробное описаниеошибка здесь:

detailed_error Я много исследовал эту ошибку, я посмотрел здесь и здесь , и даже я использовал этоисточник , но не смог выяснить, в чем проблема и как связать библиотеку, которая уже находится в указанном пути.

фрагмент кода:

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 голосов
/ 25 февраля 2019

Попробуйте изменить

#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"

и посмотрите, изменит ли это ошибку.Переход на cstdlib вместо stdlib.h объясняется тем, что stdlib.h является заголовком C, а не заголовком C ++, а cstdlib выполняет некоторые операции с пространством имен и вносит несколько небольших изменений, чтобы сделать его немного более подходящим для C ++, как описано здесь .Что касается изменения <> на "" с заголовками glad и GLFW, то это просто меняется, когда препроцессор ищет заголовки, которые также могут быть связаны с вашей ошибкой.

Что касается вопроса, заголовков и их порядка вС ++ важны.У меня есть ощущение, что порядок здесь вызывает некоторые проблемы.Пожалуйста, измените его, и если он не исправлен, надеюсь, он немного больше расскажет о проблеме.

...