如何构建OpenGL + GLEW + GLFW程序,以便在exe文件夹中不需要glfw3.dll?

时间:2014-04-03 19:06:39

标签: c++ opengl codeblocks glew glfw

我编译并执行了一个简单的OpenGL + GLEW + GLFW程序,我从教程中复制了该程序。我在Win 7 x64机器上使用了C ++和CodeBlocks 13.12。

只有当exe文件所在的bin / Debug文件夹中存在glfw3.dll文件时,程序才会执行。否则会出错:程序无法执行,因为在系统中找不到glfw.dll。我使用了默认的CodeBlocks设置。

如何构建程序,以便在包含exe文件的文件夹中不需要glfw3.dll,而是将其内置到程序中?

2 个答案:

答案 0 :(得分:3)

Statically link GLFW

  

GLFW库的静态版本名为glfw3。使用此版本时,还需要链接GLFW使用的某些库。

     

在Windows下使用静态版本的GLFW链接程序时,必须与opengl32链接。如果您使用的是GLU,则还必须使用glu32链接。

答案 1 :(得分:1)

我使用Nuwen的mingw发行版并使用以下代码进行编译:g ++ glfwtest.cpp -o glfwtest.exe -lglew32 -lglfw3 -lopengl32 -lgdi32

来自网站: GLFW库的静态版本名为glfw3。使用此版本时,还需要链接GLFW使用的某些库。

在Windows下使用静态版本的GLFW链接程序时,必须与opengl32链接。在某些版本的MinGW上,您还必须显式链接到gdi32,而其他版本的MinGW将其与其他依赖项(如user32和kernel32)一起包含在默认库集中。如果您使用的是GLU,则还必须使用glu32链接。

http://www.glfw.org/docs/latest/build.html#build_link_win32

所以在我的情况下,我必须链接gdi32。