Eric B
Eric B

Reputation: 4437

Eclipse CDT C++ enum "could not be resolved"

I'm developing a game in Eclipse CDT in C++/OpenGL, and it compiles and runs just fine, but for some reason an enum I'm declaring (SCREEN_MAIN_MENU) gets underlined in red squiggles and highlighting it says Symbol SCREEN_MAIN_MENU could not be resolved. This is a blatant lie, how do I get Eclipse to recognize it?

Screens.h:

#ifndef SCREENS_H
#define SCREENS_H

enum {
SCREEN_MAIN_MENU,
SCREEN_LOADING,
SCREEN_GAME
};

class Screen{
public:
    static void change(int screen);
    static void render();
};

#endif

Screens.cpp:

#include "screens.h"
#include "gui.h"
#include "global.h"

extern Global global;

void Screen::change(int screen){
    global.screen = screen;
}

void Screen::render(){
if(global.screen == SCREEN_MAIN_MENU){ //HERE ARE THE RED SQUIGGLES!!!??
    global.text_renderer.print("Sidona", global.screen_width/2-40,
    global.screen_height-25);
    Gui::render();
    }
}

Upvotes: 6

Views: 8722

Answers (2)

josias
josias

Reputation: 771

This may be caused by a bug in Eclipse CDT:

https://bugs.eclipse.org/bugs/show_bug.cgi?id=356057

Try to rebuild the index (Right click on the project -> Index -> Rebuild)

Upvotes: 14

Andrea Sindico
Andrea Sindico

Reputation: 7440

Have you tried creating a named type for the enum?

i.e.

enum SCREEN_TYPE {  SCREEN_MAIN_MENU, SCREEN_LOADING, SCREEN_GAME };

Upvotes: 0

Related Questions