Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. Italian
  4. Problema con libreria qtmqtt

Problema con libreria qtmqtt

Scheduled Pinned Locked Moved Unsolved Italian
8 Posts 2 Posters 680 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • U Offline
    U Offline
    unamlositp
    wrote on last edited by
    #1

    Buongiorno a tutti, sono un novizio nella programmazione con QT, e mi stavo addentrando nella stesura del mio primo programma basato sull'utilizzo dello standard MQTT.
    Purtroppo sto riscontrando un problema, ovvero alla creazione dell'oggetto mi viene restituito un errore di "undefined reference".
    La libreria è stata installata tramite il QT Maintenance Tool con sistema operativo linux.

    Qualcuno conosce la probabile causa? Specifico che sto lavorando con una applicazione console, quindi senza il file .pro o interfaccia grafica al momento.
    Grazie in anticipo per le eventuali risposte.

    (allego il blocco di codice che mi dà l'errore)

    void Client::setup(){
        qint16 port;
        m_client = new QMqttClient(this);
    
        QTextStream host(stdin);
        QString hostname = host.readLine();
    
        m_client->setHostname(hostname);
    
        std::cin >> port;
    
        m_client->setPort(port);
    
        qDebug() << "porta e host settati.";
    
    }
    

    a8249797-f78f-424b-bb09-b576ada603a8-image.png

    1 Reply Last reply
    0
    • VRoninV Offline
      VRoninV Offline
      VRonin
      wrote on last edited by VRonin
      #2

      Non hai linkato la libreria. Se usi CMake devi aggiungerla al find_package e target_link_libraries.

      Se guardi la documentazione, la prima tabellina in alto ti dice cosa devi aggiungere al CMake

      Se posti il tuo CMakeLists.txt possiamo essere piu' precisi

      "La mort n'est rien, mais vivre vaincu et sans gloire, c'est mourir tous les jours"
      ~Napoleon Bonaparte

      On a crusade to banish setIndexWidget() from the holy land of Qt

      1 Reply Last reply
      0
      • U Offline
        U Offline
        unamlositp
        wrote on last edited by
        #3

        Ciao, il problema era molto simile a quello che mi hai descritto tu, infatti avevo inserito le due righe date dalla documentazione, ma nella posizione sbagliata, ovvero sopra add_executable al posto di metterle sotto.

        Adesso la libreria è inclusa e non mi da nessun problema, ma non riesco a farla funzionare come vorrei. Non riesco a fare connettere il mio client al broker MOSQUITTO, sapresti aiutarmi?

        1 Reply Last reply
        0
        • VRoninV Offline
          VRoninV Offline
          VRonin
          wrote on last edited by
          #4

          Puoi postare il codice che hai al momento? In quello sopra non chiami mai connectToHost quindi è chiaro che non si connetta

          "La mort n'est rien, mais vivre vaincu et sans gloire, c'est mourir tous les jours"
          ~Napoleon Bonaparte

          On a crusade to banish setIndexWidget() from the holy land of Qt

          U 1 Reply Last reply
          0
          • VRoninV VRonin

            Puoi postare il codice che hai al momento? In quello sopra non chiami mai connectToHost quindi è chiaro che non si connetta

            U Offline
            U Offline
            unamlositp
            wrote on last edited by
            #5

            @VRonin Non so perché non riesco a postarlo, lo contrassegna come spam, probabilmente perché ho fatto la stessa domanda sul forum internazionale.
            Ho caricato il tutto in un .txt, spero che non venga bloccato: https://drive.google.com/file/d/1SLDOsJJLdT_onzM1wmfALoA-clB-zf4d/view?usp=sharing

            1 Reply Last reply
            0
            • VRoninV Offline
              VRoninV Offline
              VRonin
              wrote on last edited by
              #6

              Le risposte nel forum inglese sono corrette: https://forum.qt.io/topic/158642/mqtt-connection-problem
              E' solo che devi cambiare approccio e usare l'event loop di Qt

              "La mort n'est rien, mais vivre vaincu et sans gloire, c'est mourir tous les jours"
              ~Napoleon Bonaparte

              On a crusade to banish setIndexWidget() from the holy land of Qt

              U 1 Reply Last reply
              1
              • U Offline
                U Offline
                unamlositp
                wrote on last edited by
                #7

                Ci proverò appena posso mettere mano sul codice, grazie mille per i feedback :D

                1 Reply Last reply
                0
                • VRoninV VRonin

                  Le risposte nel forum inglese sono corrette: https://forum.qt.io/topic/158642/mqtt-connection-problem
                  E' solo che devi cambiare approccio e usare l'event loop di Qt

                  U Offline
                  U Offline
                  unamlositp
                  wrote on last edited by
                  #8

                  @VRonin Come mi hai e hanno consigliato nell'altro topic, ho provato a rimuovere i loop e a utilizzare invece i segnali.

                  Ho anche creato alcune classi, una per ogni funzionalità che voglio che il mio programma abbia, ma ancora non riesco a farlo funzionare bene.

                  Ho letto nella documentazione che "QMqttClient::connected()" è un segnale inviato quando il client è connesso correttamente all'host, ma c'è ancora qualcosa che mi manca, perché non riesco ancora a usarlo correttamente. Quando provo ad usarlo in una funzione "connect", mi restituisce l'errore che puoi vedere nell'immagine qui sotto:Schermata del 2024-09-11 18-07-07.png

                  Ho provato la mia implementazione, ma ancora senza successo. Queste sono le mie funzioni ora:

                  https://drive.google.com/file/d/1GamXYJo1XufG94AD24Xa1UOF2zJ1XkBz/view?usp=sharing

                  So che mi manca qualcosa, ma non riesco ad arrivare al punto in cui capisco cosa sto effettivamente facendo di male.

                  1 Reply Last reply
                  0

                  • Login

                  • Login or register to search.
                  • First post
                    Last post
                  0
                  • Categories
                  • Recent
                  • Tags
                  • Popular
                  • Users
                  • Groups
                  • Search
                  • Get Qt Extensions
                  • Unsolved