一个简单的OpenGL程序编译错误
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个简单的OpenGL程序编译错误相关的知识,希望对你有一定的参考价值。
我在vc++6.0中建了一个MFC AppWizard(exe)项目,加入一个source文件如下
#include <windows.h>
#include <gl/glut.h>
//绘图子程序
void diplay(void)
glClearColor(0.0f,0.0f,1.0f,1.0f);
glClear(GL_COLOR_BUFFER_BIT);
glFlush();
//主程序
void main(int argc,char **argv)
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
glutCreateWindow("hello");
glutDisplayFunc(display);
glutMainLoop();
但是编译时出错,这是书上的一个简单例子,错误为:c:\documents and settings\administrator\桌面\empty\ex1.cpp(16) : error C2065: 'display' : undeclared identifier
急用!!刚开始学OpenGL望高手指教,谢谢!
OPENGL不用建MFC的。
你的问题:error C2065: 'display' : undeclared identifier 很简单,你是自己粗心
glutDisplayFunc(display); 注意是 display
//绘图子程序
void diplay(void) 注意是diplay. 写错了应该是要写"display"吧 参考技术A 哈哈,错误太明显了。你定义的函数是void diplay(void),而下面调用时写的是display,是定义时少了个s吧,所以编译时说display没有定义。
使用 qt 和 opengl 编译 c++ 项目时找不到标识符错误
【中文标题】使用 qt 和 opengl 编译 c++ 项目时找不到标识符错误【英文标题】:Identifier not found error when compiling a c++ project with qt and opengl 【发布时间】:2013-03-12 14:30:04 【问题描述】:我正在尝试编译一个使用 QT 和 opengl 的 C++ 程序。
当我尝试编译它时,我收到了这个错误:
Error 1 error C3861: 'gluErrorString': identifier not found
寻找这个标识符,告诉我它定义在:glu.h 文件的第 64 行,它是 VS 2012 安装的一部分。
为什么会出现此错误?
我知道源代码是使用VS 2010开发的,但我认为如果我使用VS 2012应该没有任何区别。
我应该对项目设置进行任何更改吗?
【问题讨论】:
@Jaochim - 这不是问题,因为这是编译器错误而不是链接器错误 【参考方案1】:首先检查您是否有该行:
#include <glu.h>
某处。
未能打开 glu.h
并确保没有阻止包含该行的 #define
s。您可能需要为您的项目添加额外的定义。
有时只运行预处理器(不确定如何在 VS 中执行此操作)并确保符号最终出现在您的 cpp 文件中会很有用。
【讨论】:
在 VS 中,您可以打开源文件的属性(通常通过在解决方案视图中右键单击它),转到C/C++ > Preprocessor > Generate preprocessed file
。
@Angew 生成的文件保存在哪里?
@mans 我相信它通常在源文件旁边。它的扩展名是.i
【参考方案2】:
添加头文件 glu.h 后,您可能还会收到未解析符号 gluErrorString 的链接错误。您可以通过在项目设置的输入库中添加 glu32.lib 库来解决此问题。
【讨论】:
以上是关于一个简单的OpenGL程序编译错误的主要内容,如果未能解决你的问题,请参考以下文章
错误:在 Linux 上使用 OpenGL 编译 C++ 程序时出现“GL/glfw3.h:没有这样的文件或目录”