почему он не распознает включаемые файлы и папки - PullRequest
0 голосов
/ 21 июня 2020

каждый раз, когда я пытаюсь скомпилировать его для проверки, он не распознает файлы

#include <GL\glew.h>
#include <GLFW/glfw3.h>

#ifdef _WIN32
#pragma comment(lib, "winmm.lib")
#endif // _WIN32

int main(void)
{
    GLFWwindow* window;

    /* Initialize the library */
    if (!glfwInit())
        return -1;

    /* Create a windowed mode window and its OpenGL context */
    window = glfwCreateWindow(640, 480, "Hello World", NULL, NULL);

    if (!window)
    {
        glfwTerminate();
        return -1;
    }

    /* Make the window's context current */
    glfwMakeContextCurrent(window);
    if(!glewInit())
      return -1;

    /* Loop until the user closes the window */
    while (!glfwWindowShouldClose(window))
    {
        /* Render here */
        glClear(GL_COLOR_BUFFER_BIT);

        /* Swap front and back buffers */
        glfwSwapBuffers(window);

        /* Poll for and process events */
        glfwPollEvents();
    }

    glfwTerminate();
    return 0;
}

1 Ответ

0 голосов
/ 21 июня 2020

Когда вы используете компилятор, вам нужно указать ему каталог для поиска файлов, которые вы включаете. В строке

#include <GL\glew.h>
#include <GLFW/glfw3.h>

Это говорит компилятору включить файлы glew.h и glfw3.h. Проблема в том, как компилятор должен знать, где находятся эти файлы (он не ищет их на всем вашем диске. У компиляторов c ++ есть способ указать ему, где находятся эти файлы относительно.

In gcc / g ++ вы используете флаг -I и указываете, где находится этот каталог.

укажите папки, в которых вы сохранили gl\glew.h и glfw\glfw3.h, в g cc, используя этот параметр -I. ваши файлы хранятся в C:\Users\John\Projects\dependencies\GLFW\include\glew\glew.h и C:\Users\John\Projects\dependencies\Glew\include\glfw\glfw3.h, затем используйте флаги, например,

gcc -IC:\Users\John\Projects\dependencies\GLFW\include
    -IC:\Users\John\Projects\dependencies\Glew\include main.c -o out_file
...