9

我正在尝试使用 GLFW 学习 OpenGL,但我遇到了一些问题。

这是我的 main.cpp:

#include <GL/glfw.h>

int main()
{
    glfwInit();
    glfwSleep( 1.0 );
    glfwTerminate();
}

这是我项目的文件夹结构:

Project
+- glfw.dll
+- main.cpp

这是我提取 GLFW 文件的地方:

MinGW
+- include
|   +- GL
|      +- glfw.h
+- lib
   +- libglfw.a
   +- libglfwdll.a

这就是我尝试构建程序的方式:

g++ main.cpp -o main.exe -lglfwdll

这些是我得到的错误:

C:\Users\Dark\AppData\Local\Temp\cc0ZgTVp.o:main.cpp:(.text+0xf): undefined reference to `_glfwInit'
C:\Users\Dark\AppData\Local\Temp\cc0ZgTVp.o:main.cpp:(.text+0x25): undefined reference to `_glfwSleep'
C:\Users\Dark\AppData\Local\Temp\cc0ZgTVp.o:main.cpp:(.text+0x2a): undefined reference to `_glfwTerminate'
collect2.exe: error: ld returned 1 exit status

我错过了什么吗?

4

2 回答 2

13

根据您的环境在此处下载二进制文件。

Project
+- glfw3.dll (You can put it in System32 or SysWOW64 instead.)
+- main.cpp

MinGW
+- include
|   +- GLFW
|      +- glfw3.h
+- lib
   +- libglfw3.a
   +- libglfw3dll.a (Renamed from glfw3dll.a)

g++ -c main.cpp
g++ -o main.exe main.o -lglfw3dll -lopengl32
于 2013-06-20T16:40:19.360 回答
0

I created makefile, it's for C, but you can edit it:

all:
    gcc -I ./include ./src/*.c -L ./lib -lglfw3dll -lopengl32 -lmingw32 -lgdi32 -luser32 -lkernel32 -lglew32 -o ./bin/main
openglfolder:.
│   

makefile

│
├───bin
│       glew32.dll
│       glfw3.dll
│       main.exe

│
├───include
│       eglew.h
│       glew.h
│       glfw3.h
│       glxew.h
│       wglew.h

│
├───lib
│       glew32.dll
│       glew32.lib
│       glew32s.lib
│       libglfw3.a
│       libglfw3dll.a

│
└───src
        main.c

edit : this works only for windows

于 2021-03-09T21:40:28.740 回答