Как запустить и скомпилировать код C ++ GLFW, используя Atom с пакетом gpp-compiler - PullRequest
0 голосов
/ 27 сентября 2018

Итак, я хочу использовать Atom в качестве своей IDE в своем путешествии по изучению GLFW.Это мой код

#include <GLFW\glfw3.h>

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);

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

        glBegin(GL_TRIANGLES);
        glVertex2f(-0.5f, -0.5f);
        glVertex2f(0.0f, 0.5f);
        glVertex2f(0.5f, -0.5f);
        glEnd();

        /* Swap front and back buffers */
        glfwSwapBuffers(window);
        /* Poll for and process events */
        glfwPollEvents();
    }

    glfwTerminate();
    return 0;
}

Так что я уже пробовал искать вопросы, похожие на мои, но, к счастью, ответы на эти вопросы не сработали.Я уже добавил lib-файлы GLFW в папку lib MinGW, и она не сработала, это ошибка, которую я получаю.Я знаю, что получаю эту ошибку, потому что gpp-компилятор не может найти файлы библиотеки GLFW.

Спасибо, что ответили: D

C:\Users\Asus\AppData\Local\Temp\cc4lMOFw.o:main.cpp:(.text+0x17): undefined reference to `glfwInit'
C:\Users\Asus\AppData\Local\Temp\cc4lMOFw.o:main.cpp:(.text+0x56): undefined reference to `glfwCreateWindow'
C:\Users\Asus\AppData\Local\Temp\cc4lMOFw.o:main.cpp:(.text+0x64): undefined reference to `glfwTerminate'
C:\Users\Asus\AppData\Local\Temp\cc4lMOFw.o:main.cpp:(.text+0x79): undefined reference to `glfwMakeContextCurrent'
C:\Users\Asus\AppData\Local\Temp\cc4lMOFw.o:main.cpp:(.text+0x84): undefined reference to `glfwWindowShouldClose'
C:\Users\Asus\AppData\Local\Temp\cc4lMOFw.o:main.cpp:(.text+0x9d): undefined reference to `_imp__glClear@4'
C:\Users\Asus\AppData\Local\Temp\cc4lMOFw.o:main.cpp:(.text+0xae): undefined reference to `_imp__glBegin@4'
C:\Users\Asus\AppData\Local\Temp\cc4lMOFw.o:main.cpp:(.text+0xcb): undefined reference to `_imp__glVertex2f@8'
C:\Users\Asus\AppData\Local\Temp\cc4lMOFw.o:main.cpp:(.text+0xe4): undefined reference to `_imp__glVertex2f@8'
C:\Users\Asus\AppData\Local\Temp\cc4lMOFw.o:main.cpp:(.text+0x101): undefined reference to `_imp__glVertex2f@8'
C:\Users\Asus\AppData\Local\Temp\cc4lMOFw.o:main.cpp:(.text+0x10b): undefined reference to `_imp__glEnd@0'
C:\Users\Asus\AppData\Local\Temp\cc4lMOFw.o:main.cpp:(.text+0x118): undefined reference to `glfwSwapBuffers'
C:\Users\Asus\AppData\Local\Temp\cc4lMOFw.o:main.cpp:(.text+0x11d): undefined reference to `glfwPollEvents'
C:\Users\Asus\AppData\Local\Temp\cc4lMOFw.o:main.cpp:(.text+0x127): undefined reference to `glfwTerminate'
collect2.exe: error: ld returned 1 exit status

1 Ответ

0 голосов
/ 29 сентября 2018

Итак, у меня все получилось, поэтому я просто компилировал программу, не связывая библиотеки GLFW.Поскольку я использовал MinGW в качестве своего компилятора C ++ в Atom, мне нужно было добавить это в настройки пакетов gpp-компилятора Параметры компилятора C ++ -lglfw3dll -lopengl32 и поместить файл glfw3.dll в ту же папку, что и ваш файл main.cpp, тогда он работал,Обратите внимание, что вы должны поместить lib-файлы GLFW в папку libs MinGW и добавить заголовочные файлы GLFW в папку include MinGW

...