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. LNK2019: unresolved external symbol issue happens when calling a function from third party static library
Forum Updated to NodeBB v4.3 + New Features

LNK2019: unresolved external symbol issue happens when calling a function from third party static library

Scheduled Pinned Locked Moved Solved General and Desktop
21 Posts 5 Posters 9.9k Views 1 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

    @Uddo_ud said in LNK2019: unresolved external symbol issue happens when calling a function from third party static library:

    -llibanimation-vc90-mt-s

    You should remove the "lib" prefix:

    win32: LIBS += -L$$PWD/engine/lib/PVR3_PC_EMU/ -lanimation-vc90-mt-s
    

    To add a static lib do

    LIBS += PATH_TO_LIB_DIR/libLIBNAME.a
    
    U Offline
    U Offline
    Uddo_ud
    wrote on last edited by
    #9

    @jsulm

    First of all "libanimation-vc90-mt-s.lib" is the name of the library file and "lib" you have focused is not a prefix.

    Secondly, there is no "libanimation-vc90-mt-s.a" file in my libs folder. I tried to add as you said and ended up with "file not found" error.

    jsulmJ aha_1980A 2 Replies Last reply
    0
    • U Uddo_ud

      @jsulm

      First of all "libanimation-vc90-mt-s.lib" is the name of the library file and "lib" you have focused is not a prefix.

      Secondly, there is no "libanimation-vc90-mt-s.a" file in my libs folder. I tried to add as you said and ended up with "file not found" error.

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

      @Uddo_ud What is the whole file name of libanimation-vc90-mt-s.lib?
      When adding libs with -l the lib prefix must be removed.

      Static lib was just an example, on Windows it may be different (.lib maybe?).

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

      U 1 Reply Last reply
      0
      • U Uddo_ud

        @jsulm

        First of all "libanimation-vc90-mt-s.lib" is the name of the library file and "lib" you have focused is not a prefix.

        Secondly, there is no "libanimation-vc90-mt-s.a" file in my libs folder. I tried to add as you said and ended up with "file not found" error.

        aha_1980A Offline
        aha_1980A Offline
        aha_1980
        Lifetime Qt Champion
        wrote on last edited by
        #11

        @Uddo_ud said in LNK2019: unresolved external symbol issue happens when calling a function from third party static library:

        "vc90" looks like a very old version of MS C++ compiler. Is that still compatible with the current version?

        Qt has to stay free or it will die.

        U 2 Replies Last reply
        0
        • jsulmJ jsulm

          @Uddo_ud What is the whole file name of libanimation-vc90-mt-s.lib?
          When adding libs with -l the lib prefix must be removed.

          Static lib was just an example, on Windows it may be different (.lib maybe?).

          U Offline
          U Offline
          Uddo_ud
          wrote on last edited by
          #12

          @jsulm

          @Uddo_ud What is the whole file name of libanimation-vc90-mt-s.lib?

          0_1545289607812_ed45e61f-71e5-4c13-9c85-c1413aa46761-image.png

          Static lib was just an example, on Windows it may be different (.lib maybe?).

          Yes I tried adding .lib also. But Linker issue yet happens.

          1 Reply Last reply
          0
          • aha_1980A aha_1980

            @Uddo_ud said in LNK2019: unresolved external symbol issue happens when calling a function from third party static library:

            "vc90" looks like a very old version of MS C++ compiler. Is that still compatible with the current version?

            U Offline
            U Offline
            Uddo_ud
            wrote on last edited by
            #13

            @aha_1980

            Yes this might be the problem. Earlier I thought it was compatible and then I tried this with another working sample project. Now I need to check with the actual project. Thank you very much. I will check it and let you know the progress.

            1 Reply Last reply
            1
            • SGaistS Offline
              SGaistS Offline
              SGaist
              Lifetime Qt Champion
              wrote on last edited by
              #14

              Hi,

              Visual Studio compilers are not compatible one with the other except for VS2017 which is backward compatible with VS2015 There for you can't mix and match libraries.

              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
              3
              • aha_1980A aha_1980

                @Uddo_ud said in LNK2019: unresolved external symbol issue happens when calling a function from third party static library:

                "vc90" looks like a very old version of MS C++ compiler. Is that still compatible with the current version?

                U Offline
                U Offline
                Uddo_ud
                wrote on last edited by
                #15

                @aha_1980

                "vc90" looks like a very old version of MS C++ compiler. Is that still compatible with the current version?

                I built the libraries in VS2015 and included those to Qt project and compile using MSVC2017 32bit and MSVC2015 32bit both. Most of the linker issues were solved but some are remain still.

                aha_1980A 1 Reply Last reply
                0
                • U Uddo_ud

                  @aha_1980

                  "vc90" looks like a very old version of MS C++ compiler. Is that still compatible with the current version?

                  I built the libraries in VS2015 and included those to Qt project and compile using MSVC2017 32bit and MSVC2015 32bit both. Most of the linker issues were solved but some are remain still.

                  aha_1980A Offline
                  aha_1980A Offline
                  aha_1980
                  Lifetime Qt Champion
                  wrote on last edited by
                  #16

                  @Uddo_ud

                  Most of the linker issues were solved but some are remain still.

                  are they related to this library or something else?

                  Qt has to stay free or it will die.

                  U 1 Reply Last reply
                  0
                  • aha_1980A aha_1980

                    @Uddo_ud

                    Most of the linker issues were solved but some are remain still.

                    are they related to this library or something else?

                    U Offline
                    U Offline
                    Uddo_ud
                    wrote on last edited by
                    #17

                    @aha_1980

                    To refer I previously sent only one library (libanimation-vc90-mt-s.lib). There are 5 libraries. The problem with the libanimation-vc90-mt-s.lib is solved now. Now the problem is with the libloader-vc90-mt-s.lib. All the included libraries are now build in VS2015.

                    U 1 Reply Last reply
                    0
                    • U Uddo_ud

                      @aha_1980

                      To refer I previously sent only one library (libanimation-vc90-mt-s.lib). There are 5 libraries. The problem with the libanimation-vc90-mt-s.lib is solved now. Now the problem is with the libloader-vc90-mt-s.lib. All the included libraries are now build in VS2015.

                      U Offline
                      U Offline
                      Uddo_ud
                      wrote on last edited by
                      #18

                      Additionally,

                      This is an existing VS project I'm trying to do using QT. I built the VS solution in VS2015 and VS2017. Both work fine with the vc90 libraries. Issues occur when comes to QT.

                      Is that a problem with QT creator?

                      aha_1980A 1 Reply Last reply
                      0
                      • U Uddo_ud

                        Additionally,

                        This is an existing VS project I'm trying to do using QT. I built the VS solution in VS2015 and VS2017. Both work fine with the vc90 libraries. Issues occur when comes to QT.

                        Is that a problem with QT creator?

                        aha_1980A Offline
                        aha_1980A Offline
                        aha_1980
                        Lifetime Qt Champion
                        wrote on last edited by aha_1980
                        #19

                        @Uddo_ud

                        Is that a problem with QT creator?

                        Well, Creator calls qmake to create the Makefiles and afterwards nmake/jom to build the project. The compiler and linker are exactly the same as in VS itself.

                        The only thing I can imagine is that some environment paths are not correctly so the linker pulls in something different.

                        What's a bit of a problem is, the linker command line does not contain the objects list, they are rather in a temporary file. Debugging this is painful...

                        Edit: Can you please give a concrete example of this linker error? Is it for pure C or C++ symbols?

                        Qt has to stay free or it will die.

                        U 1 Reply Last reply
                        0
                        • aha_1980A aha_1980

                          @Uddo_ud

                          Is that a problem with QT creator?

                          Well, Creator calls qmake to create the Makefiles and afterwards nmake/jom to build the project. The compiler and linker are exactly the same as in VS itself.

                          The only thing I can imagine is that some environment paths are not correctly so the linker pulls in something different.

                          What's a bit of a problem is, the linker command line does not contain the objects list, they are rather in a temporary file. Debugging this is painful...

                          Edit: Can you please give a concrete example of this linker error? Is it for pure C or C++ symbols?

                          U Offline
                          U Offline
                          Uddo_ud
                          wrote on last edited by Uddo_ud
                          #20

                          @aha_1980

                          Here is the error log

                          0_1545390111043_Screenshot (19).png

                          Is it for pure C or C++ symbols?

                          I didn't get this.

                          The only thing I can imagine is that some environment paths are not correctly so the linker pulls in something different.

                          Is this means the build environment settings in the QT project? I will check it.

                          In the project we have included <windows.h>. Path to the windows SDK in the QT build environment might be the problem?

                          U 1 Reply Last reply
                          0
                          • U Uddo_ud

                            @aha_1980

                            Here is the error log

                            0_1545390111043_Screenshot (19).png

                            Is it for pure C or C++ symbols?

                            I didn't get this.

                            The only thing I can imagine is that some environment paths are not correctly so the linker pulls in something different.

                            Is this means the build environment settings in the QT project? I will check it.

                            In the project we have included <windows.h>. Path to the windows SDK in the QT build environment might be the problem?

                            U Offline
                            U Offline
                            Uddo_ud
                            wrote on last edited by
                            #21

                            Solution for this issue has been found in the below forum. Thanks all for the support.

                            https://forum.qt.io/topic/97995/can-qt-access-windows-sdk-functions-in-a-third-party-static-libraries/3

                            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