Opengl - GLfloat未被识别

3

在这个类声明中遇到了一些问题,我正在尝试创建节点以实现Dijkstra最短路径算法的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>?(这与你的问题无关,我只是好奇。) - Maxpm
2个回答

8

您需要

#include <GL/gl.h>

在包含OpenGL扩展头文件之前。

0

如果你有

#include <GL/glut.h>

那么你应该不需要GL/gl.h或GL/glu.h,尽管你可能需要在GL/glut.h之前放置cstdlib。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接