Opengl - GLfloat не распознается - PullRequest
3 голосов
/ 30 июня 2011

Возникли проблемы с объявлением этого класса. Я пытаюсь создать узлы для реализации openGL алгоритма кратчайшего пути Дийктры.Методы getX (), getY (), getZ () вызывают ошибку:

ошибка: ISO C ++ запрещает объявление 'getX' без типа

Я компилирую с g ++ в Ubuntu Linux.Команда: 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 ++, так что любой совет хорош, но я действительно хочу знать, почему я получаю ошибку.

Ответы [ 2 ]

8 голосов
/ 30 июня 2011

Вам нужно

#include <GL/gl.h>

, прежде чем включать заголовки для расширений OpenGL.

0 голосов
/ 30 июня 2011

Если у вас есть

#include <GL/glut.h>

Тогда вам не нужны GL / gl.h или GL / glu.h, хотя вам, возможно, придется поставить cstdlib до GL / glut.ч

...