Opengl - GLfloat未被识别
Posted
技术标签:
【中文标题】Opengl - GLfloat未被识别【英文标题】:Opengl - GLfloat not being recognized 【发布时间】:2011-06-29 21:13:40 【问题描述】:这个类声明有一些问题,我试图为 Dijktra 的最短路径算法的 openGL 实现创建节点。 getX()、getY()、getZ() 方法会导致错误:
错误:ISO C++ 禁止声明没有类型的“getX”
我在 ubuntu linux 上用 g++ 编译。命令:g++ -lglut -lGLU -lGL projecttest.c
#include <cstdarg>
#include <cstdio>
#include <GL/glut.h>
#include <GL/glu.h>
#include <cstdlib>
#include <iostream>
#define kWindowWidth 800
#define kWindowHeight 600
#define NUM_NODES 3
using namespace std;
class Node
private:
GLfloat x, y, z;
int numLinks;
Node *links[];
public:
Node(GLfloat x, GLfloat y, ...);
~Node();
GLfloat getX();
GLfloat getY();
GLfloat getZ() return 0.0f;
Node;
Node nodes_g[NUM_NODES];
我认为问题出在预处理器宏上。我是 openGL 的新手,对 c++ 有点陌生,所以任何建议都很好,但我真正想知道的是为什么我会收到错误。
【问题讨论】:
为什么要同时包含<cstdio>
和<iostream>
? (这与您的问题无关;我只是好奇。)
【参考方案1】:
你需要
#include <GL/gl.h>
在包含 OpenGL 扩展的标头之前。
【讨论】:
【参考方案2】:如果你有
#include <GL/glut.h>
那么您应该不需要 GL/gl.h 或 GL/glu.h,尽管您可能必须将 cstdlib 放在 GL/glut.h
【讨论】:
以上是关于Opengl - GLfloat未被识别的主要内容,如果未能解决你的问题,请参考以下文章