我试图用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
我错过了什么吗?
答案 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