Visualizzazione dei risultati da 1 a 3 su 3

Discussione: [C++] vtable for GUI

  1. #1

    [C++] vtable for GUI

    Ciao a tutti. Ho un problema con l'interfaccia grafica del mio progetto (wxWidgets e OpenGL). Fino a ieri funzionavano tutte le mie classi. Oggi ho provato ad aggiungere una classe Colore che si occupa di richiamare le funzioni di OpenGL per colorare e che ho messo come attributo della classe Palla3D, che deriva da Palla. Palla3D, in più di Palla ha come attributo un colore e un GLUquadric*, che serve per disegnare la sfera.

    Quando ho compilato però ho ottenuto una brutta sorpresa su una classe che non ho toccato minimamente... la classe GUI. La mia interfaccia é composta dalla classe GUI (wxApp), da Finestra (wxFrame) e dalla classe Vista che si occupa del timer (quindi di far evolvere il mio sistema) e di disegnarlo a schermo.

    Questo é l'errore che ottengo:
    codice:
    Undefined symbols for architecture i386:
      "vtable for GUI", referenced from:
          GUI::GUI()   in cc74qdwS.o
      NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
    ld: symbol(s) not found for architecture i386
    collect2: error: ld returned 1 exit status
    make: *** [testGUI] Error 1
    La classe GUI é semplicemente questa, quindi non riesco proprio a capire, anche perché prima funzionava tutto:
    codice:
    #ifndef GUI_H
    #define GUI_H
    
    #include "Finestra.h"
    
    class GUI : public wxApp
    {
    public:
    	// --- METODI ---
      	bool OnInit();
    };
    
    #endif
    codice:
    #include "GUI.h"
    
    // *** PUBLIC ***
    
    // --- METODI ---
    
    bool GUI::OnInit()
    {
      	Finestra* f = new Finestra(wxT("Simulazione"), wxSize(800, 600));
      	SetTopWindow(f);
      	
      	return (f != 0);
    }
    Sono proprio bloccato e se non riesco a trovare l'errore devo rifare un sacco di cose... =(.

    Grazie,
    R.
    K. L. Thompson
    You can't trust code that you did not totally create yourself.
    A. Bogk
    UNIX is user-friendly, it just chooses its friends.

  2. #2
    Utente bannato
    Registrato dal
    Apr 2012
    Messaggi
    510
    Probabilmente è perché erediti da wxApp.

  3. #3
    Originariamente inviato da Who am I
    Probabilmente è perché erediti da wxApp.
    Ma fino a ieri funzionava: penso che l'unica funzione non definita in wxApp sia proprio OnInit()... Almeno, ho sempre fatto così e ha sempre funzionato...

    Poi che é cc74qdwS.o ? Non c'é da nessuna parte nel mio Makefile...
    K. L. Thompson
    You can't trust code that you did not totally create yourself.
    A. Bogk
    UNIX is user-friendly, it just chooses its friends.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.