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. Can not create/use DLL
Qt 6.11 is out! See what's new in the release blog

Can not create/use DLL

Scheduled Pinned Locked Moved Unsolved General and Desktop
28 Posts 4 Posters 2.7k Views 2 Watching
  • 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

    @JacobNovitsky If you don't plan to build for Windows then you can remove all the win32 lines, but don't forget to alter other lines (like removing else:).

    J Offline
    J Offline
    JacobNovitsky
    wrote on last edited by
    #12

    @jsulm is this correct?

    LIBS += -L$$OUT_PWD/home/supernova/build-MyLib-Desktop_Qt_6_2_4_GCC_64bit-Debug -lmylib
    INCLUDEPATH += $$PWD/home/supernova/build-MyLib-Desktop_Qt_6_2_4_GCC_64bit-Debug
    DEPENDPATH += $$PWD/home/supernova/build-MyLib-Desktop_Qt_6_2_4_GCC_64bit-Debug
    PRE_TARGETDEPS += $$OUT_PWD/home/supernova/build-MyLib-Desktop_Qt_6_2_4_GCC_64bit-Debug

    Not sure If i need to include project source files, if need please advise where to include

    jsulmJ 1 Reply Last reply
    0
    • J JacobNovitsky

      @jsulm is this correct?

      LIBS += -L$$OUT_PWD/home/supernova/build-MyLib-Desktop_Qt_6_2_4_GCC_64bit-Debug -lmylib
      INCLUDEPATH += $$PWD/home/supernova/build-MyLib-Desktop_Qt_6_2_4_GCC_64bit-Debug
      DEPENDPATH += $$PWD/home/supernova/build-MyLib-Desktop_Qt_6_2_4_GCC_64bit-Debug
      PRE_TARGETDEPS += $$OUT_PWD/home/supernova/build-MyLib-Desktop_Qt_6_2_4_GCC_64bit-Debug

      Not sure If i need to include project source files, if need please advise where to include

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

      @JacobNovitsky said in Can not create/use DLL:

      Not sure If i need to include project source files

      If you want to link against a pre build lib then of course you do not have to include the lib sources in the project which links against it.

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

      J 1 Reply Last reply
      0
      • jsulmJ jsulm

        @JacobNovitsky said in Can not create/use DLL:

        Not sure If i need to include project source files

        If you want to link against a pre build lib then of course you do not have to include the lib sources in the project which links against it.

        J Offline
        J Offline
        JacobNovitsky
        wrote on last edited by
        #14

        just delete both projects and created new

        pro:

        QT -= gui

        TEMPLATE = lib
        DEFINES += MYLIB_LIBRARY

        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 +=
        mylib.cpp

        HEADERS +=
        MyLib_global.h
        mylib.h

        LIBS += -L$$OUT_PWD/home/supernova/build-MyLib-Desktop_Qt_6_2_4_GCC_64bit-Debug -lmylib
        

        INCLUDEPATH += $$PWD/home/supernova/build-MyLib-Desktop_Qt_6_2_4_GCC_64bit-Debug
        DEPENDPATH += $$PWD/home/supernova/build-MyLib-Desktop_Qt_6_2_4_GCC_64bit-Debug
        PRE_TARGETDEPS += $$OUT_PWD/home/supernova/build-MyLib-Desktop_Qt_6_2_4_GCC_64bit-Debug

        Default rules for deployment.

        unix {
        target.path = /usr/lib
        }
        !isEmpty(target.path): INSTALLS += target

        compile output:
        :-1: error: No rule to make target '/home/supernova/build-MyLib-Desktop_Qt_6_2_4_GCC_64bit-Debug/home/supernova/build-MyLib-Desktop_Qt_6_2_4_GCC_64bit-Debug', needed by 'libMyLib.so.1.0.0'. Stop.

        path correct, supernova@supernova-BOHB-WAX9:~/build-MyLib-Desktop_Qt_6_2_4_GCC_64bit-Debug$ ls
        libMyLib.so libMyLib.so.1.0 Makefile
        libMyLib.so.1 libMyLib.so.1.0.0 mylib.o

        please assist

        J 1 Reply Last reply
        0
        • J JacobNovitsky

          just delete both projects and created new

          pro:

          QT -= gui

          TEMPLATE = lib
          DEFINES += MYLIB_LIBRARY

          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 +=
          mylib.cpp

          HEADERS +=
          MyLib_global.h
          mylib.h

          LIBS += -L$$OUT_PWD/home/supernova/build-MyLib-Desktop_Qt_6_2_4_GCC_64bit-Debug -lmylib
          

          INCLUDEPATH += $$PWD/home/supernova/build-MyLib-Desktop_Qt_6_2_4_GCC_64bit-Debug
          DEPENDPATH += $$PWD/home/supernova/build-MyLib-Desktop_Qt_6_2_4_GCC_64bit-Debug
          PRE_TARGETDEPS += $$OUT_PWD/home/supernova/build-MyLib-Desktop_Qt_6_2_4_GCC_64bit-Debug

          Default rules for deployment.

          unix {
          target.path = /usr/lib
          }
          !isEmpty(target.path): INSTALLS += target

          compile output:
          :-1: error: No rule to make target '/home/supernova/build-MyLib-Desktop_Qt_6_2_4_GCC_64bit-Debug/home/supernova/build-MyLib-Desktop_Qt_6_2_4_GCC_64bit-Debug', needed by 'libMyLib.so.1.0.0'. Stop.

          path correct, supernova@supernova-BOHB-WAX9:~/build-MyLib-Desktop_Qt_6_2_4_GCC_64bit-Debug$ ls
          libMyLib.so libMyLib.so.1.0 Makefile
          libMyLib.so.1 libMyLib.so.1.0.0 mylib.o

          please assist

          J Offline
          J Offline
          JacobNovitsky
          wrote on last edited by
          #15

          any ideas how to fix that?
          compile output:
          :-1: error: No rule to make target '/home/supernova/build-MyLib-Desktop_Qt_6_2_4_GCC_64bit-Debug/home/supernova/build-MyLib-Desktop_Qt_6_2_4_GCC_64bit-Debug', needed by 'libMyLib.so.1.0.0'. Stop.

          SGaistS 1 Reply Last reply
          0
          • J JacobNovitsky

            any ideas how to fix that?
            compile output:
            :-1: error: No rule to make target '/home/supernova/build-MyLib-Desktop_Qt_6_2_4_GCC_64bit-Debug/home/supernova/build-MyLib-Desktop_Qt_6_2_4_GCC_64bit-Debug', needed by 'libMyLib.so.1.0.0'. Stop.

            SGaistS Offline
            SGaistS Offline
            SGaist
            Lifetime Qt Champion
            wrote on last edited by
            #16

            Remove $$PWD from the corresponding lines.

            Side question: are you going to use that library in any other project ?

            Interested in AI ? www.idiap.ch
            Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

            J 1 Reply Last reply
            1
            • SGaistS SGaist

              Remove $$PWD from the corresponding lines.

              Side question: are you going to use that library in any other project ?

              J Offline
              J Offline
              JacobNovitsky
              wrote on last edited by JacobNovitsky
              #17

              @SGaist not this, but after I learn how to use this, I gonna use it, for sure

              J 1 Reply Last reply
              0
              • J JacobNovitsky

                @SGaist not this, but after I learn how to use this, I gonna use it, for sure

                J Offline
                J Offline
                JacobNovitsky
                wrote on last edited by
                #18

                @SGaist side question too :)
                where can I read about QMAKE?

                SGaistS 1 Reply Last reply
                0
                • J JacobNovitsky

                  @SGaist side question too :)
                  where can I read about QMAKE?

                  SGaistS Offline
                  SGaistS Offline
                  SGaist
                  Lifetime Qt Champion
                  wrote on last edited by
                  #19

                  In the qmake manual

                  Interested in AI ? www.idiap.ch
                  Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                  J 1 Reply Last reply
                  1
                  • SGaistS SGaist

                    In the qmake manual

                    J Offline
                    J Offline
                    JacobNovitsky
                    wrote on last edited by
                    #20

                    Libtest.pro
                    QT = core

                    CONFIG += c++17 cmdline

                    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 +=
                    main.cpp

                    Default rules for deployment.

                    qnx: target.path = /tmp/$${TARGET}/bin
                    else: unix:!android: target.path = /opt/$${TARGET}/bin
                    !isEmpty(target.path): INSTALLS += target

                    LIBS +=/home/supernova/build-MyLib-Desktop_Qt_6_2_4_GCC_64bit-Debug
                    INCLUDEPATH +=/home/supernova/build-MyLib-Desktop_Qt_6_2_4_GCC_64bit-Debug
                    DEPENDPATH +=/home/supernova/build-MyLib-Desktop_Qt_6_2_4_GCC_64bit-Debug
                    PRE_TARGETDEPS +=/home/supernova/build-MyLib-Desktop_Qt_6_2_4_GCC_64bit-Debug

                    MyLib.pro

                    QT -= gui

                    TEMPLATE = lib
                    DEFINES += MYLIB_LIBRARY

                    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 +=
                    mylib.cpp

                    HEADERS +=
                    MyLib_global.h
                    mylib.h

                    Default rules for deployment.

                    unix {
                    target.path = /usr/lib
                    }
                    !isEmpty(target.path): INSTALLS += target

                    :-1: error: cannot find /home/supernova/build-MyLib-Desktop_Qt_6_2_4_GCC_64bit-Debug: file format not recognized

                    How to fix error above? There is still no DLL, if I comply with syntax, shall I get dll?

                    jsulmJ 1 Reply Last reply
                    0
                    • J JacobNovitsky

                      Libtest.pro
                      QT = core

                      CONFIG += c++17 cmdline

                      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 +=
                      main.cpp

                      Default rules for deployment.

                      qnx: target.path = /tmp/$${TARGET}/bin
                      else: unix:!android: target.path = /opt/$${TARGET}/bin
                      !isEmpty(target.path): INSTALLS += target

                      LIBS +=/home/supernova/build-MyLib-Desktop_Qt_6_2_4_GCC_64bit-Debug
                      INCLUDEPATH +=/home/supernova/build-MyLib-Desktop_Qt_6_2_4_GCC_64bit-Debug
                      DEPENDPATH +=/home/supernova/build-MyLib-Desktop_Qt_6_2_4_GCC_64bit-Debug
                      PRE_TARGETDEPS +=/home/supernova/build-MyLib-Desktop_Qt_6_2_4_GCC_64bit-Debug

                      MyLib.pro

                      QT -= gui

                      TEMPLATE = lib
                      DEFINES += MYLIB_LIBRARY

                      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 +=
                      mylib.cpp

                      HEADERS +=
                      MyLib_global.h
                      mylib.h

                      Default rules for deployment.

                      unix {
                      target.path = /usr/lib
                      }
                      !isEmpty(target.path): INSTALLS += target

                      :-1: error: cannot find /home/supernova/build-MyLib-Desktop_Qt_6_2_4_GCC_64bit-Debug: file format not recognized

                      How to fix error above? There is still no DLL, if I comply with syntax, shall I get dll?

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

                      @JacobNovitsky You should really read the link @SGaist gave you.
                      In LIBS you need to also specify the lib you want to link.

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

                      J 1 Reply Last reply
                      0
                      • jsulmJ jsulm

                        @JacobNovitsky You should really read the link @SGaist gave you.
                        In LIBS you need to also specify the lib you want to link.

                        J Offline
                        J Offline
                        JacobNovitsky
                        wrote on last edited by
                        #22

                        @jsulm if I use in the LIBS line something with prefix -lmylib it does not work :)
                        what should I exactly insert to LIBS line?

                        J 1 Reply Last reply
                        0
                        • J JacobNovitsky

                          @jsulm if I use in the LIBS line something with prefix -lmylib it does not work :)
                          what should I exactly insert to LIBS line?

                          J Offline
                          J Offline
                          JacobNovitsky
                          wrote on last edited by JacobNovitsky
                          #23

                          changed to

                              LIBS += -L/home/supernova/build-MyLib-Desktop_Qt_6_2_4_GCC_64bit-Debug -lMyLib
                              INCLUDEPATH += /home/supernova/build-MyLib-Desktop_Qt_6_2_4_GCC_64bit-Debug
                              DEPENDPATH += /home/supernova/build-MyLib-Desktop_Qt_6_2_4_GCC_64bit-Debug
                              PRE_TARGETDEPS += /home/supernova/build-MyLib-Desktop_Qt_6_2_4_GCC_64bit-Debug
                          

                          it builds, but how to gett .dll file?

                          J SGaistS 2 Replies Last reply
                          0
                          • J JacobNovitsky

                            changed to

                                LIBS += -L/home/supernova/build-MyLib-Desktop_Qt_6_2_4_GCC_64bit-Debug -lMyLib
                                INCLUDEPATH += /home/supernova/build-MyLib-Desktop_Qt_6_2_4_GCC_64bit-Debug
                                DEPENDPATH += /home/supernova/build-MyLib-Desktop_Qt_6_2_4_GCC_64bit-Debug
                                PRE_TARGETDEPS += /home/supernova/build-MyLib-Desktop_Qt_6_2_4_GCC_64bit-Debug
                            

                            it builds, but how to gett .dll file?

                            J Offline
                            J Offline
                            JacobNovitsky
                            wrote on last edited by JacobNovitsky
                            #24

                            If I just link header which includes other project headers, it means my program auto include all headers which increase building and execution time?
                            same going to happen if I use dll, I'm I correct?

                            SGaistS 1 Reply Last reply
                            0
                            • J JacobNovitsky

                              changed to

                                  LIBS += -L/home/supernova/build-MyLib-Desktop_Qt_6_2_4_GCC_64bit-Debug -lMyLib
                                  INCLUDEPATH += /home/supernova/build-MyLib-Desktop_Qt_6_2_4_GCC_64bit-Debug
                                  DEPENDPATH += /home/supernova/build-MyLib-Desktop_Qt_6_2_4_GCC_64bit-Debug
                                  PRE_TARGETDEPS += /home/supernova/build-MyLib-Desktop_Qt_6_2_4_GCC_64bit-Debug
                              

                              it builds, but how to gett .dll file?

                              SGaistS Offline
                              SGaistS Offline
                              SGaist
                              Lifetime Qt Champion
                              wrote on last edited by
                              #25

                              @JacobNovitsky said in Can not create/use DLL:

                              changed to

                                  LIBS += -L/home/supernova/build-MyLib-Desktop_Qt_6_2_4_GCC_64bit-Debug -lMyLib
                                  INCLUDEPATH += /home/supernova/build-MyLib-Desktop_Qt_6_2_4_GCC_64bit-Debug
                                  DEPENDPATH += /home/supernova/build-MyLib-Desktop_Qt_6_2_4_GCC_64bit-Debug
                                  PRE_TARGETDEPS += /home/supernova/build-MyLib-Desktop_Qt_6_2_4_GCC_64bit-Debug
                              

                              it builds, but how to gett .dll file?

                              If after building, you don't have any dll then it means you are not exporting anything from your code.

                              Interested in AI ? www.idiap.ch
                              Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                              J 1 Reply Last reply
                              0
                              • J JacobNovitsky

                                If I just link header which includes other project headers, it means my program auto include all headers which increase building and execution time?
                                same going to happen if I use dll, I'm I correct?

                                SGaistS Offline
                                SGaistS Offline
                                SGaist
                                Lifetime Qt Champion
                                wrote on last edited by SGaist
                                #26

                                @JacobNovitsky said in Can not create/use DLL:

                                If I just link header which includes other project headers, it means my program auto include all headers which increase building and execution time?
                                same going to happen if I use dll, I'm I correct?

                                Build time, yes hence only include what you use in your headers and for the rest use forward declarations. As for execution time, no, it's not directly related.

                                What do you mean by "if I use dll".

                                Interested in AI ? www.idiap.ch
                                Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                                1 Reply Last reply
                                0
                                • SGaistS SGaist

                                  @JacobNovitsky said in Can not create/use DLL:

                                  changed to

                                      LIBS += -L/home/supernova/build-MyLib-Desktop_Qt_6_2_4_GCC_64bit-Debug -lMyLib
                                      INCLUDEPATH += /home/supernova/build-MyLib-Desktop_Qt_6_2_4_GCC_64bit-Debug
                                      DEPENDPATH += /home/supernova/build-MyLib-Desktop_Qt_6_2_4_GCC_64bit-Debug
                                      PRE_TARGETDEPS += /home/supernova/build-MyLib-Desktop_Qt_6_2_4_GCC_64bit-Debug
                                  

                                  it builds, but how to gett .dll file?

                                  If after building, you don't have any dll then it means you are not exporting anything from your code.

                                  J Offline
                                  J Offline
                                  JacobNovitsky
                                  wrote on last edited by
                                  #27

                                  @SGaist It feels like I'm close to solve this, what am I missing? What I need to do in order to get dll?

                                  SGaistS 1 Reply Last reply
                                  0
                                  • J JacobNovitsky

                                    @SGaist It feels like I'm close to solve this, what am I missing? What I need to do in order to get dll?

                                    SGaistS Offline
                                    SGaistS Offline
                                    SGaist
                                    Lifetime Qt Champion
                                    wrote on last edited by
                                    #28

                                    @JacobNovitsky as I wrote: check that you are properly exporting stuff from your library code.

                                    Interested in AI ? www.idiap.ch
                                    Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                                    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