Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. Including MQTT wrapper for mosquitto library on windows
Forum Updated to NodeBB v4.3 + New Features

Including MQTT wrapper for mosquitto library on windows

Scheduled Pinned Locked Moved Unsolved General and Desktop
mqttlibrarywidgetc++17
22 Posts 4 Posters 3.2k 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.
  • jsulmJ jsulm

    @Dean21 How does your pro file look like now?

    D Offline
    D Offline
    Dean21
    wrote on last edited by
    #13

    @jsulm This is now my .pro file.

    QT       += core gui
    
    greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
    
    CONFIG += c++17
    
    #QMAKE_CXXFLAGS += -lmosquitto
    
    #INCLUDEPATH += "C:/Program Files/mosquitto/devel"
    
    #LIBS += -L"C:/Program Files/mosquitto/devel" -lmosquittopp
    
    # You can make your code fail to compile if it uses deprecated APIs.
    # In order to do so, uncomment the following line.
    #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0
    
    SOURCES += \
        QMMqttClient.cpp \
        main.cpp \
        widget.cpp \
    
    HEADERS += \
        QMMqttClient.h \
        widget.h
    
    FORMS += \
        widget.ui
    
    # Default rules for deployment.
    qnx: target.path = /tmp/$${TARGET}/bin
    else: unix:!android: target.path = /opt/$${TARGET}/bin
    !isEmpty(target.path): INSTALLS += target
    
    win32:CONFIG(release, debug|release): LIBS += -L$$PWD/'../../../../../../../Program Files/mosquitto/devel/' -lmosquittopp
    else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/'../../../../../../../Program Files/mosquitto/devel/' -lmosquittoppd
    else:unix: LIBS += -L$$PWD/'../../../../../../../Program Files/mosquitto/devel/' -lmosquittopp
    
    INCLUDEPATH += $$PWD/'../../../../../../../Program Files/mosquitto/devel'
    DEPENDPATH += $$PWD/'../../../../../../../Program Files/mosquitto/devel'
    
    win32-g++:CONFIG(release, debug|release): PRE_TARGETDEPS += $$PWD/'../../../../../../../Program Files/mosquitto/devel/libmosquittopp.a'
    else:win32-g++:CONFIG(debug, debug|release): PRE_TARGETDEPS += $$PWD/'../../../../../../../Program Files/mosquitto/devel/libmosquittoppd.a'
    else:win32:!win32-g++:CONFIG(release, debug|release): PRE_TARGETDEPS += $$PWD/'../../../../../../../Program Files/mosquitto/devel/mosquittopp.lib'
    else:win32:!win32-g++:CONFIG(debug, debug|release): PRE_TARGETDEPS += $$PWD/'../../../../../../../Program Files/mosquitto/devel/mosquittoppd.lib'
    else:unix: PRE_TARGETDEPS += $$PWD/'../../../../../../../Program Files/mosquitto/devel/libmosquittopp.a'
    
    
    jsulmJ 1 Reply Last reply
    0
    • D Dean21

      @jsulm This is now my .pro file.

      QT       += core gui
      
      greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
      
      CONFIG += c++17
      
      #QMAKE_CXXFLAGS += -lmosquitto
      
      #INCLUDEPATH += "C:/Program Files/mosquitto/devel"
      
      #LIBS += -L"C:/Program Files/mosquitto/devel" -lmosquittopp
      
      # You can make your code fail to compile if it uses deprecated APIs.
      # In order to do so, uncomment the following line.
      #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0
      
      SOURCES += \
          QMMqttClient.cpp \
          main.cpp \
          widget.cpp \
      
      HEADERS += \
          QMMqttClient.h \
          widget.h
      
      FORMS += \
          widget.ui
      
      # Default rules for deployment.
      qnx: target.path = /tmp/$${TARGET}/bin
      else: unix:!android: target.path = /opt/$${TARGET}/bin
      !isEmpty(target.path): INSTALLS += target
      
      win32:CONFIG(release, debug|release): LIBS += -L$$PWD/'../../../../../../../Program Files/mosquitto/devel/' -lmosquittopp
      else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/'../../../../../../../Program Files/mosquitto/devel/' -lmosquittoppd
      else:unix: LIBS += -L$$PWD/'../../../../../../../Program Files/mosquitto/devel/' -lmosquittopp
      
      INCLUDEPATH += $$PWD/'../../../../../../../Program Files/mosquitto/devel'
      DEPENDPATH += $$PWD/'../../../../../../../Program Files/mosquitto/devel'
      
      win32-g++:CONFIG(release, debug|release): PRE_TARGETDEPS += $$PWD/'../../../../../../../Program Files/mosquitto/devel/libmosquittopp.a'
      else:win32-g++:CONFIG(debug, debug|release): PRE_TARGETDEPS += $$PWD/'../../../../../../../Program Files/mosquitto/devel/libmosquittoppd.a'
      else:win32:!win32-g++:CONFIG(release, debug|release): PRE_TARGETDEPS += $$PWD/'../../../../../../../Program Files/mosquitto/devel/mosquittopp.lib'
      else:win32:!win32-g++:CONFIG(debug, debug|release): PRE_TARGETDEPS += $$PWD/'../../../../../../../Program Files/mosquitto/devel/mosquittoppd.lib'
      else:unix: PRE_TARGETDEPS += $$PWD/'../../../../../../../Program Files/mosquitto/devel/libmosquittopp.a'
      
      
      jsulmJ Offline
      jsulmJ Offline
      jsulm
      Lifetime Qt Champion
      wrote on last edited by
      #14

      @Dean21 said in Including MQTT wrapper for mosquitto library on windows:

      else:unix: PRE_TARGETDEPS += $$PWD/'../../../../../../../Program Files/mosquitto/devel/libmosquittopp.a'

      Why do you have this?
      Your LIBS for Windows are still wrong.

      https://forum.qt.io/topic/113070/qt-code-of-conduct

      D 1 Reply Last reply
      0
      • jsulmJ jsulm

        @Dean21 said in Including MQTT wrapper for mosquitto library on windows:

        else:unix: PRE_TARGETDEPS += $$PWD/'../../../../../../../Program Files/mosquitto/devel/libmosquittopp.a'

        Why do you have this?
        Your LIBS for Windows are still wrong.

        D Offline
        D Offline
        Dean21
        wrote on last edited by
        #15

        @jsulm Sorry forgot to untick linux and mac boxes, here is the .pro file, it still has the same error though.

        QT       += core gui
        
        greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
        
        CONFIG += c++17
        
        QMAKE_CXXFLAGS += -lmosquitto
        
        INCLUDEPATH += "C:/Program Files/mosquitto/devel"
        
        LIBS += -L"C:/Program Files/mosquitto/devel" -lmosquittopp
        
        # You can make your code fail to compile if it uses deprecated APIs.
        # In order to do so, uncomment the following line.
        #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0
        
        SOURCES += \
            QMMqttClient.cpp \
            main.cpp \
            widget.cpp \
        
        HEADERS += \
            QMMqttClient.h \
            widget.h
        
        FORMS += \
            widget.ui
        
        # Default rules for deployment.
        qnx: target.path = /tmp/$${TARGET}/bin
        else: unix:!android: target.path = /opt/$${TARGET}/bin
        !isEmpty(target.path): INSTALLS += target
        
        win32:CONFIG(release, debug|release): LIBS += -L$$PWD/'../../../../../../../Program Files/mosquitto/devel/' -lmosquittopp
        else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/'../../../../../../../Program Files/mosquitto/devel/' -lmosquittoppd
        
        INCLUDEPATH += $$PWD/'../../../../../../../Program Files/mosquitto/devel'
        DEPENDPATH += $$PWD/'../../../../../../../Program Files/mosquitto/devel'
        
        win32-g++:CONFIG(release, debug|release): PRE_TARGETDEPS += $$PWD/'../../../../../../../Program Files/mosquitto/devel/libmosquittopp.a'
        else:win32-g++:CONFIG(debug, debug|release): PRE_TARGETDEPS += $$PWD/'../../../../../../../Program Files/mosquitto/devel/libmosquittoppd.a'
        else:win32:!win32-g++:CONFIG(release, debug|release): PRE_TARGETDEPS += $$PWD/'../../../../../../../Program Files/mosquitto/devel/mosquittopp.lib'
        else:win32:!win32-g++:CONFIG(debug, debug|release): PRE_TARGETDEPS += $$PWD/'../../../../../../../Program Files/mosquitto/devel/mosquittoppd.lib'
        
        

        Error: :-1: error: No rule to make target 'C:/Users/deanm/Desktop/Uni_Year_3/3rd_year_project/Microscope_GUI_V2/Microscope_GUI/../../../../../../../Program Files/mosquitto/devel/libmosquittoppd.a', needed by 'debug/Microscope_GUI.exe'. Stop.

        jsulmJ 1 Reply Last reply
        0
        • D Dean21

          @jsulm Sorry forgot to untick linux and mac boxes, here is the .pro file, it still has the same error though.

          QT       += core gui
          
          greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
          
          CONFIG += c++17
          
          QMAKE_CXXFLAGS += -lmosquitto
          
          INCLUDEPATH += "C:/Program Files/mosquitto/devel"
          
          LIBS += -L"C:/Program Files/mosquitto/devel" -lmosquittopp
          
          # You can make your code fail to compile if it uses deprecated APIs.
          # In order to do so, uncomment the following line.
          #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0
          
          SOURCES += \
              QMMqttClient.cpp \
              main.cpp \
              widget.cpp \
          
          HEADERS += \
              QMMqttClient.h \
              widget.h
          
          FORMS += \
              widget.ui
          
          # Default rules for deployment.
          qnx: target.path = /tmp/$${TARGET}/bin
          else: unix:!android: target.path = /opt/$${TARGET}/bin
          !isEmpty(target.path): INSTALLS += target
          
          win32:CONFIG(release, debug|release): LIBS += -L$$PWD/'../../../../../../../Program Files/mosquitto/devel/' -lmosquittopp
          else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/'../../../../../../../Program Files/mosquitto/devel/' -lmosquittoppd
          
          INCLUDEPATH += $$PWD/'../../../../../../../Program Files/mosquitto/devel'
          DEPENDPATH += $$PWD/'../../../../../../../Program Files/mosquitto/devel'
          
          win32-g++:CONFIG(release, debug|release): PRE_TARGETDEPS += $$PWD/'../../../../../../../Program Files/mosquitto/devel/libmosquittopp.a'
          else:win32-g++:CONFIG(debug, debug|release): PRE_TARGETDEPS += $$PWD/'../../../../../../../Program Files/mosquitto/devel/libmosquittoppd.a'
          else:win32:!win32-g++:CONFIG(release, debug|release): PRE_TARGETDEPS += $$PWD/'../../../../../../../Program Files/mosquitto/devel/mosquittopp.lib'
          else:win32:!win32-g++:CONFIG(debug, debug|release): PRE_TARGETDEPS += $$PWD/'../../../../../../../Program Files/mosquitto/devel/mosquittoppd.lib'
          
          

          Error: :-1: error: No rule to make target 'C:/Users/deanm/Desktop/Uni_Year_3/3rd_year_project/Microscope_GUI_V2/Microscope_GUI/../../../../../../../Program Files/mosquitto/devel/libmosquittoppd.a', needed by 'debug/Microscope_GUI.exe'. Stop.

          jsulmJ Offline
          jsulmJ Offline
          jsulm
          Lifetime Qt Champion
          wrote on last edited by
          #16

          @Dean21 said in Including MQTT wrapper for mosquitto library on windows:

          QMAKE_CXXFLAGS += -lmosquitto

          Why?

          And again: your LIBS for Windows are wrong!

          I also don't know why you have static versions if you want to link dynamically:

          else:win32-g++:CONFIG(debug, debug|release): PRE_TARGETDEPS += $$PWD/'../../../../../../../Program Files/mosquitto/devel/libmosquittoppd.a'
          

          Remove alls these *.a stuff.

          https://forum.qt.io/topic/113070/qt-code-of-conduct

          D 1 Reply Last reply
          0
          • jsulmJ jsulm

            @Dean21 said in Including MQTT wrapper for mosquitto library on windows:

            QMAKE_CXXFLAGS += -lmosquitto

            Why?

            And again: your LIBS for Windows are wrong!

            I also don't know why you have static versions if you want to link dynamically:

            else:win32-g++:CONFIG(debug, debug|release): PRE_TARGETDEPS += $$PWD/'../../../../../../../Program Files/mosquitto/devel/libmosquittoppd.a'
            

            Remove alls these *.a stuff.

            D Offline
            D Offline
            Dean21
            wrote on last edited by
            #17

            @jsulm My bad, this was done with dynamic and this is what was generated in the .pro file now.

            QT       += core gui
            
            greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
            
            CONFIG += c++17
            
            QMAKE_CXXFLAGS += -lmosquitto
            
            INCLUDEPATH += "C:/Program Files/mosquitto/devel"
            
            LIBS += -L"C:/Program Files/mosquitto/devel" -lmosquittopp
            
            # You can make your code fail to compile if it uses deprecated APIs.
            # In order to do so, uncomment the following line.
            #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0
            
            SOURCES += \
                QMMqttClient.cpp \
                main.cpp \
                widget.cpp \
            
            HEADERS += \
                QMMqttClient.h \
                widget.h
            
            FORMS += \
                widget.ui
            
            # Default rules for deployment.
            qnx: target.path = /tmp/$${TARGET}/bin
            else: unix:!android: target.path = /opt/$${TARGET}/bin
            !isEmpty(target.path): INSTALLS += target
            
            win32:CONFIG(release, debug|release): LIBS += -L$$PWD/'../../../../../../../Program Files/mosquitto/devel/' -lmosquittopp
            else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/'../../../../../../../Program Files/mosquitto/devel/' -lmosquittoppd
            
            INCLUDEPATH += $$PWD/'../../../../../../../Program Files/mosquitto/devel'
            DEPENDPATH += $$PWD/'../../../../../../../Program Files/mosquitto/devel'
            
            

            This now gives these errors:

            :-1: error: cannot find -lmosquittoppd
            :-1: error: cannot find -lmosquittod
            :-1: error: collect2.exe: error: ld returned 1 exit status

            1 Reply Last reply
            0
            • D Dean21

              @jsulm I am not sure what compiler was used to compile the library, but as I have had this working in Qt creator before on linux with the same library I assumed it would work fine on windows

              S Offline
              S Offline
              starkm42
              wrote on last edited by starkm42
              #18

              @Dean21 wait are you using the same compiled library that you used for linux on windows without recompiling or getting new binaries compiled for windows ?

              @Dean21 said in Including MQTT wrapper for mosquitto library on windows:

              @jsulm I am not sure what compiler was used to compile the library, but as I have had this working in Qt creator before on linux with the same library I assumed it would work fine on windows

              D 1 Reply Last reply
              0
              • S starkm42

                @Dean21 wait are you using the same compiled library that you used for linux on windows without recompiling or getting new binaries compiled for windows ?

                @Dean21 said in Including MQTT wrapper for mosquitto library on windows:

                @jsulm I am not sure what compiler was used to compile the library, but as I have had this working in Qt creator before on linux with the same library I assumed it would work fine on windows

                D Offline
                D Offline
                Dean21
                wrote on last edited by
                #19

                @starkm42 No, i just redownloaded the library from the website and set it up to start with to make sure it was working before i tried to use it in qt

                1 Reply Last reply
                0
                • D Offline
                  D Offline
                  Dean21
                  wrote on last edited by
                  #20

                  I just re-added the library, but removed the tickbox for "add d suffix for debug", and that removes the errors about finding -mosquitoppd, but now I have all the same linker errors again.

                  S 1 Reply Last reply
                  0
                  • D Dean21

                    I just re-added the library, but removed the tickbox for "add d suffix for debug", and that removes the errors about finding -mosquitoppd, but now I have all the same linker errors again.

                    S Offline
                    S Offline
                    starkm42
                    wrote on last edited by starkm42
                    #21

                    @Dean21

                    for adding a test library called NemaTode, after following the guide https://doc.qt.io/qtcreator/creator-project-qmake-libraries.html

                    this is what my qmake looks like

                    QT       += core gui positioning
                    
                    greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
                    
                    CONFIG += c++17
                    
                    # You can make your code fail to compile if it uses deprecated APIs.
                    # In order to do so, uncomment the following line.
                    #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0
                    
                    SOURCES += \
                        gpssource.cpp \
                        main.cpp \
                        mainwindow.cpp
                    
                    HEADERS += \
                        gpssource.h \
                        mainwindow.h
                    
                    # Default rules for deployment.
                    qnx: target.path = /tmp/$${TARGET}/bin
                    else: unix:!android: target.path = /opt/$${TARGET}/bin
                    !isEmpty(target.path): INSTALLS += target
                    
                    win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../../third_party_libs/NemaTode/lib/ -lNemaTode
                    else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../../third_party_libs/NemaTode/lib/ -lNemaTode
                    else:unix: LIBS += -L$$PWD/../../third_party_libs/NemaTode/lib/ -lNemaTode
                    
                    INCLUDEPATH += $$PWD/../../third_party_libs/NemaTode/include/nmeaparse
                    DEPENDPATH += $$PWD/../../third_party_libs/NemaTode/include/nmeaparse
                    
                    FORMS += \
                        GPSCordinatesDisplay.ui
                    

                    mine does not have LIB or INCLUDEPATH
                    try removing all manual additions, just sticking to the guide would be my suggestion.

                    D 1 Reply Last reply
                    0
                    • S starkm42

                      @Dean21

                      for adding a test library called NemaTode, after following the guide https://doc.qt.io/qtcreator/creator-project-qmake-libraries.html

                      this is what my qmake looks like

                      QT       += core gui positioning
                      
                      greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
                      
                      CONFIG += c++17
                      
                      # You can make your code fail to compile if it uses deprecated APIs.
                      # In order to do so, uncomment the following line.
                      #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0
                      
                      SOURCES += \
                          gpssource.cpp \
                          main.cpp \
                          mainwindow.cpp
                      
                      HEADERS += \
                          gpssource.h \
                          mainwindow.h
                      
                      # Default rules for deployment.
                      qnx: target.path = /tmp/$${TARGET}/bin
                      else: unix:!android: target.path = /opt/$${TARGET}/bin
                      !isEmpty(target.path): INSTALLS += target
                      
                      win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../../third_party_libs/NemaTode/lib/ -lNemaTode
                      else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../../third_party_libs/NemaTode/lib/ -lNemaTode
                      else:unix: LIBS += -L$$PWD/../../third_party_libs/NemaTode/lib/ -lNemaTode
                      
                      INCLUDEPATH += $$PWD/../../third_party_libs/NemaTode/include/nmeaparse
                      DEPENDPATH += $$PWD/../../third_party_libs/NemaTode/include/nmeaparse
                      
                      FORMS += \
                          GPSCordinatesDisplay.ui
                      

                      mine does not have LIB or INCLUDEPATH
                      try removing all manual additions, just sticking to the guide would be my suggestion.

                      D Offline
                      D Offline
                      Dean21
                      wrote on last edited by
                      #22

                      @starkm42 Thanks for the reply, the issue was to do with the fact mosquitto was compiled with a different library. To avoid this I am just going to run a ubuntu VM Thanks everyone for the help.

                      1 Reply Last reply
                      1

                      • Login

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