网上配置GLFW的方法有很多,但是感觉介绍不是特别清楚,尤其是静态链接与动态链接GLFW设置。另外,一些配置方法中路径设置不是很合理。因此,本文对这些问题进行探索,以VS2017为例,给出了下面的三步配置方法。
1. 下载并解压GLFW文件
进入GLFW官网下载页面,可以直接下载windows pre-compiled binaries,为windows预编译版本,windows下可以直接调用,不需要下载源码进行cmake。此处32和64指的不是本机器的位数,而是生成目标的位数。
如果在VS中目标平台为x86,可以下载32-bit;x64的话,则可以下载64-bit,如下图。
下载完后解压如下:
2. 安置GLFW文件
对VS2017来说,解压文件中需要安置的文件在两个文件夹中:include与lib-vc2017中,如上图所示。安置分两步:
(1)include文件:将include文件夹中的Glfw文件拷贝到VC2017的包含目录下。如果VS2017安装在D盘,则为"d:Program Files (x86)Microsoft Visual Studio2017CommunityVCToolsMSVC14.16.27023include".
(2)lib文件:将lib-vc2017文件夹中的四个文件拷贝到"d:Program Files (x86)Microsoft Visual Studio2017CommunityVCToolsMSVC14.16.27023libx86"文件夹下,如下图所示。
3. VS工程配置
(1)新建一个c win32控制台项目
(2)链接库设置
这里分静态链接与动态链接两种,具体如下:
(a) 静态链接库方式:
在 “连接器” ->“附加依赖项”中添加“opengl32.lib”和"glfw3.lib",用分号隔开。可以点右边的尖角号打开编辑窗口进行编辑。
(b) 动态链接库方式:
动态链接库方式设置要多一步。首先,在“连接器” ->“附加依赖项”中添加“opengl32.lib”和"glfw3dll.lib",用分号隔开;
其次,在vs工程属性–>配置属性–>调试–>环境中设置:“path=d:Program Files (x86)Microsoft Visual Studio2017CommunityVCToolsMSVC14.16.27023libx86”,告诉程序glfw3.dll的存放路径,如下图所示。
到此配置成功。
下面进行测试。在源文件中添加下面代码:
代码语言:javascript复制#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);
glVertex2d(0.5f, 0.5f);
glVertex2d(-0.5f, -0.5f);
glVertex2d(0.5f, -0.5f);
glEnd();
/* Swap front and back buffers */
glfwSwapBuffers(window);
/* Poll for and process events */
glfwPollEvents();
}
glfwTerminate();
return 0;
}
运行产生如下图所示三角形,则测试成功。