OpenGL函数在VS2012 express中未定义
OpenGL functions are undefined in VS2012 express
我正试图在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的项目都需要这些步骤。
- 编译C++时未定义的引用
- vscode g++链路故障:体系结构x86_64的未定义符号
- 如何修复此错误:未定义对"距离(浮点数,浮点数,浮点数,浮点数,浮点数)"的引用
- 我的项目不会像"undefined reference to `grpc::g_core_codegen_interface'"那样使用未定义的引用错误进行编译
- 不知道某个东西是否被忽略会引入未定义的行为吗
- 对C宏的未定义引用,但在定义它时会出现重新定义错误
- 未定义的引用在哪里
- 编译时的 CImg 库返回对"__imp_SetDIBitsToDevice"的未定义引用
- 对Py_Initialize()的未定义引用
- c++11评估顺序(未定义的行为)
- 使用mysql c++连接器的未定义引用
- 从python调用openMP共享库时,未定义opnMP函数
- 在 Mac 上使用 CMAKE 将 FFTW 和 FFTWPP 链接到项目中时未定义的符号
- Cmake 链接问题:未定义对 Button::mousePressEvent(QGraphicsSceneMouseE
- 未定义的引用 .. 使用 OpenCV 编译 C++ 代码时,从命令行
- 具有外部"c"和程序集的未定义函数
- 此增量后语句是否会导致未定义的行为?
- 尝试调用 .h 文件中定义的变量时出现变量未定义错误
- 在C++中使用内联方法时出现未定义的符号错误
- OpenGL函数在VS2012 express中未定义