使用MinGW设置GLFW

时间:2012-10-14 21:16:32

标签: mingw glfw

我试图用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

我错过了什么吗?

2 个答案:

答案 0 :(得分:6)

根据您的环境下载二进制文件here

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

答案 1 :(得分:0)

我创建了 makefile,它用于 C,但您可以编辑它:

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

编辑:这只适用于windows