OpenGL函数在VS2012 express中未定义

OpenGL functions are undefined in VS2012 express

本文关键字:未定义 express VS2012 函数 OpenGL      更新时间:2023-10-16

我正试图在Visual Studio 2012 express中使用一些OpenGL函数,我的代码如下:

#include <Windows.h>
#include <iostream>
#include <gl/GL.h>
#include <fstream>
void saveScreen()
{
 //code to define some variables, nWidth, nHeight and Buffer.
glreadbuffer ( GL_BACK ); //which buffer we are reading from.
glreadpixels ( 0, 0, nWidth, nHeight, GL_RGB, GL_UNSIGNED_BYTE, (GLvoid *Buffer); 
//do something with buffer data
return;
}

根据互联网研究,我的代码是正确的,除了glreadpixels显然期望更多的表达式和),但我认为我自己可以解决这个问题。

当我试图编译和运行时,我会收到错误,说glreadbuffer和glreadpixels都是未定义的。除了#之外,我找不到任何告诉我该做什么的东西,包括windows.h和gl/gl.h以及OpenGL应该工作。

提前感谢您的帮助:)

编辑:

感谢回复,我将这些行添加到链接器的附加依赖项:

opengl32.libglu32.lib

并正确地将函数调用大写这似乎解决了问题。

函数glreadbuffer()glreadpixels在OpenGL中不存在。API使用CamelCase函数名称样式,因此这些函数名称的拼写为glReadBuffer()glReadPixels()

这就是在visual studio 12:中正确链接的方法

您首先创建的是一个名为"dev"(或任何名称)的文件夹。在该文件夹中,您提取"freeglut"(仅当您想要一个窗口工具包时)和"glew"(openGL扩展程序,这将加载gl函数)。

然后在VS12中打开一个新项目,右键单击项目->属性在VC++属性下,单击"Include directories"并添加到您的dev/glew/Include文件夹和dev/freeglut/Include的路径。确保你的路径100%正确!然后单击"Library directories"并添加这两个路径:/dev/glew/lib和/dev/freeglut/lib。

然后转到C/C++,单击其他include目录并添加这两个路径:/dev/glew/include和/dev/freeglut/include。然后转到链接器并在"附加库目录"中添加lib文件夹这是一个棘手的问题,因为您需要链接到正确的版本:\dev\glew\lib\Release \Win32

然后重试您的代码,如果不起作用,请尝试来自互联网的源代码。此外,如果您在不更改文件夹名称的情况下复制了文件夹,则应包含"GL/glew.h"每个使用openGL的项目都需要这些步骤。