Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di goatboy
    Registrato dal
    Mar 2011
    residenza
    Salerno
    Messaggi
    408

    [QT] Riferimenti a simboli esterni non risolti

    Salve ragazzi,
    sto lavorando ad un progetto in Qt 5.3. Procedeva tutto bene, ma ad un certo punto, nella fase di building, mi da dei riferimenti esterni non risolti. Gli errori, nel dettaglio, sono questi:

    codice:
    playlist.obj:-1: error: LNK2019: riferimento al simbolo esterno "public: virtual __cdecl PlayList::~PlayList(void)" (??1PlayList@@UEAA@XZ) non risolto nella funzione "public: virtual void * __cdecl PlayList::`scalar deleting destructor'(unsigned int)" (??_GPlayList@@UEAAPEAXI@Z)
    
    manualmenu.obj:-1: error: LNK2019: riferimento al simbolo esterno "public: virtual __cdecl ManualMenu::~ManualMenu(void)" (??1ManualMenu@@UEAA@XZ) non risolto nella funzione "public: virtual void * __cdecl ManualMenu::`scalar deleting destructor'(unsigned int)" (??_GManualMenu@@UEAAPEAXI@Z)
    
    listgroup.obj:-1: error: LNK2019: riferimento al simbolo esterno "public: virtual __cdecl ListGroup::~ListGroup(void)" (??1ListGroup@@UEAA@XZ) non risolto nella funzione "public: virtual void * __cdecl ListGroup::`scalar deleting destructor'(unsigned int)" (??_GListGroup@@UEAAPEAXI@Z)
    
    musiclist.obj:-1: error: LNK2019: riferimento al simbolo esterno "public: virtual __cdecl MusicList::~MusicList(void)" (??1MusicList@@UEAA@XZ) non risolto nella funzione "public: virtual void * __cdecl MusicList::`scalar deleting destructor'(unsigned int)" (??_GMusicList@@UEAAPEAXI@Z)
    
    moc_listgroup.obj:-1: error: LNK2019: riferimento al simbolo esterno "private: void __cdecl ListGroup::metaStateChanged(int,int)" (?metaStateChanged@ListGroup@@AEAAXHH@Z) non risolto nella funzione "private: static void __cdecl ListGroup::qt_static_metacall(class QObject *,enum QMetaObject::Call,int,void * *)" (?qt_static_metacall@ListGroup@@CAXPEAVQObject@@W4Call@QMetaObject@@HPEAPEAX@Z)
    I file sono tutti presenti regolarmente nel progetto (in Sources e Headers). Non capisco come risolvere. La cosa strana è che nelle build precedenti non mi ha dato errore. Ho aggiunto una cosa al file .pro (websockets) ed ho effettuato la qmake. Non mi ha dato problemi. Poi la build mi sputa questo. Ho provato anche a togliere l'aggiunta al file .pro, ma non cambia nulla. E' come se non trovasse i file .h?

  2. #2
    Utente di HTML.it L'avatar di goatboy
    Registrato dal
    Mar 2011
    residenza
    Salerno
    Messaggi
    408
    Ho ricreato il progetto e non da più errori. Sta di fatto che non capisco perchè me li dava.

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2013
    Messaggi
    12
    Un problema che capita spesso anche a me. Sapete da cosa è causato?

  4. #4
    Utente di HTML.it L'avatar di goatboy
    Registrato dal
    Mar 2011
    residenza
    Salerno
    Messaggi
    408
    Adesso mi da un altro errore, mi dice di controllare questa dichiarazione:

    codice:
    namespace Ui {class Widget;}
    Ho questo costruttore e distruttore nell'header...
    codice:
    public:
        explicit Widget(const QUrl &url, QWidget *parent = 0);
        ~Widget();
    e nel file .cpp:

    codice:
    Widget::Widget(const QUrl &url, QWidget *parent) :
        QWidget(parent),
        ui(new Ui::Widget),
        m_url(&url)
    {
        ui->setupUi(this);
        ...altro codice...
    }
    Widget::~Widget()
    {
        delete ui;
    }
    Mi da i seguenti errori (il costruttore)

    Ui::Widget: non è disponibile alcun costruttore predefinito appropriato.
    utilizzo di tipo non definito Ui::Widget
    l'elemento a sinistra di ->setupUi deve puntare a un tipo classe, struttura, unione o generico


    e il distruttore mi da questo errore:
    eliminazione di puntatore al tipo incompleto Ui::Widget. Nessun distruttore chiamato.
    Ultima modifica di MItaly; 04-04-2015 a 15:32 Motivo: Sistemata formattazione

  5. #5
    Quote Originariamente inviata da Athair90 Visualizza il messaggio
    Un problema che capita spesso anche a me. Sapete da cosa è causato?
    In genere dipende dal fatto che non è stato creato/aggiornato il file generato dal MOC per il .cpp in questione. Di solito si risolve richiamando manualmente qmake (menu Build->Run qmake).
    Amaro C++, il gusto pieno dell'undefined behavior.

  6. #6
    Quote Originariamente inviata da goatboy Visualizza il messaggio
    Adesso mi da un altro errore, mi dice di controllare questa dichiarazione:
    ...
    1. Fai girare qmake
    2. Nel .cpp è incluso "ui_widget.h"?
    Amaro C++, il gusto pieno dell'undefined behavior.

  7. #7
    Utente di HTML.it L'avatar di goatboy
    Registrato dal
    Mar 2011
    residenza
    Salerno
    Messaggi
    408
    Il problema si è risolto da solo, non so come. A volte Qt mi lascia perplesso. Qmake comunque non risolveva niente..

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.