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. Error:undefined reference to..
Forum Updated to NodeBB v4.3 + New Features

Error:undefined reference to..

Scheduled Pinned Locked Moved Solved General and Desktop
15 Posts 5 Posters 15.3k 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.
  • S seok

    @jsulm @JonB i am really sorry i know that it is wrong of me to not provide the code but i cannot really provide the code and as for the error

    "undefined reference to myfilter"
    where myfilter is a object of the class filter which is defined in filter.h file and the definition for the functions inside the class are written in filter.cpp file

    and in other file i am using myfilter object by using extern keyword

    JonBJ Offline
    JonBJ Offline
    JonB
    wrote on last edited by JonB
    #6

    @seok
    Could you clarify that you get this error message when the build process tries to link your object files together (after all files have been compiled), and not at compile-time, when the build is running the compiler on your source files?

    Assuming that is the case, the first possibility is the filter.o/.obj to be generated from the filter.cpp is not being linked with. Look carefully at your linker command line: do you see that object file at all there? This would sound like the only possibility if the sources really do work in Visual Studio.

    The next possibility is check 100 times that the spelling, including case, is identical where defined and where used in your source code.

    The next possibility is that you only have extern Filter *myfilter in your file(s). You must have some one place, in a .cpp file, which defines storage for the object, like Filter *myfilter, no extern.

    S 1 Reply Last reply
    0
    • JonBJ JonB

      @seok
      Could you clarify that you get this error message when the build process tries to link your object files together (after all files have been compiled), and not at compile-time, when the build is running the compiler on your source files?

      Assuming that is the case, the first possibility is the filter.o/.obj to be generated from the filter.cpp is not being linked with. Look carefully at your linker command line: do you see that object file at all there? This would sound like the only possibility if the sources really do work in Visual Studio.

      The next possibility is check 100 times that the spelling, including case, is identical where defined and where used in your source code.

      The next possibility is that you only have extern Filter *myfilter in your file(s). You must have some one place, in a .cpp file, which defines storage for the object, like Filter *myfilter, no extern.

      S Offline
      S Offline
      seok
      wrote on last edited by
      #7

      @JonB yes i am getting this error when the build process tries to link the object files together

      and how do i check the whether it is being linked or not (i don't know how to check the linker stage output in qt)

      (sorry for the late replay since i am a new user i can only post after 600 secs)

      JonBJ 1 Reply Last reply
      0
      • S seok

        @JonB yes i am getting this error when the build process tries to link the object files together

        and how do i check the whether it is being linked or not (i don't know how to check the linker stage output in qt)

        (sorry for the late replay since i am a new user i can only post after 600 secs)

        JonBJ Offline
        JonBJ Offline
        JonB
        wrote on last edited by JonB
        #8

        @seok said in Error:undefined reference to..:

        (i don't know how to check the linker stage output in qt)

        Look at the build/compile output pane in Qt Creator. You should be seeing it go past every time you build, so you really should be aware of it.

        S 1 Reply Last reply
        0
        • JonBJ JonB

          @seok said in Error:undefined reference to..:

          (i don't know how to check the linker stage output in qt)

          Look at the build/compile output pane in Qt Creator. You should be seeing it go past every time you build, so you really should be aware of it.

          S Offline
          S Offline
          seok
          wrote on last edited by
          #9

          @JonB yes i tried build now and the problem lies at the linker stage

          and i do have a .cpp file, which defines storage for the object, like Filter *myfilter without extern

          JonBJ 1 Reply Last reply
          0
          • S seok

            @JonB yes i tried build now and the problem lies at the linker stage

            and i do have a .cpp file, which defines storage for the object, like Filter *myfilter without extern

            JonBJ Offline
            JonBJ Offline
            JonB
            wrote on last edited by
            #10

            @seok said in Error:undefined reference to..:

            @JonB yes i tried build now and the problem lies at the linker stage

            As stated: look at the complete linker line issued, does it include the object file for filter, that would be the simplest thing to be missing?

            S 1 Reply Last reply
            1
            • M Offline
              M Offline
              mchinand
              wrote on last edited by
              #11

              Is the source file definitely being compiled (look at the compile output panel)? Show your project file and tell us which file has that class.

              1 Reply Last reply
              0
              • JonBJ JonB

                @seok said in Error:undefined reference to..:

                @JonB yes i tried build now and the problem lies at the linker stage

                As stated: look at the complete linker line issued, does it include the object file for filter, that would be the simplest thing to be missing?

                S Offline
                S Offline
                seok
                wrote on last edited by
                #12

                @JonB ok i will check

                J.HilkJ 1 Reply Last reply
                0
                • JonBJ JonB

                  @jsulm
                  I didn't even know for sure whether at least some compilers would give an Undefined reference to just for a missing symbol in a file at compile time, like int z = something_undefined? But it seems this does only come from the linker, the compiler must say something else for that, like Undeclared ... instead?

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

                  @JonB Yes, all the compiler needs is to know the type of the symbol. Or, in case of forward declaration, only that it exists and is a data structure (class/struct). But the linker needs the actual definitions to be able to point to them in the binaries (for example it needs to know where a function is to be able to put the address to it where it is called).

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

                  1 Reply Last reply
                  0
                  • S seok

                    @JonB ok i will check

                    J.HilkJ Offline
                    J.HilkJ Offline
                    J.Hilk
                    Moderators
                    wrote on last edited by
                    #14

                    @seok are you sure your myfilter.h and myfilter.cpp are part of your project? As in listed in HEADERS += myfilter.h ?


                    Be aware of the Qt Code of Conduct, when posting : https://forum.qt.io/topic/113070/qt-code-of-conduct


                    Q: What's that?
                    A: It's blue light.
                    Q: What does it do?
                    A: It turns blue.

                    1 Reply Last reply
                    1
                    • S Offline
                      S Offline
                      seok
                      wrote on last edited by
                      #15

                      @JonB sorry for updating this late i was not doing well

                      my problem solved by deleting the Filter myfilter (in the other .cpp file) and defining it again i don't know what was the problem ( i dint change anything just defined it again)

                      but i am really thankfull for all of your help

                      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