Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Qt Creator and other tools
  4. [Solved] Linker Error
Forum Updated to NodeBB v4.3 + New Features

[Solved] Linker Error

Scheduled Pinned Locked Moved Solved Qt Creator and other tools
19 Posts 4 Posters 4.7k 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.
  • Christian EhrlicherC Offline
    Christian EhrlicherC Offline
    Christian Ehrlicher
    Lifetime Qt Champion
    wrote on last edited by
    #5

    I still don't see a relation to Qt here except that you use an IDE which is built with Qt. I also don't get a linker error. If you need the documentation for qmake you can look here but your pro file is correct.

    Qt Online Installer direct download: https://download.qt.io/official_releases/online_installers/
    Visit the Qt Academy at https://academy.qt.io/catalog

    C 1 Reply Last reply
    0
    • Christian EhrlicherC Christian Ehrlicher

      I still don't see a relation to Qt here except that you use an IDE which is built with Qt. I also don't get a linker error. If you need the documentation for qmake you can look here but your pro file is correct.

      C Offline
      C Offline
      Charon117
      wrote on last edited by
      #6

      @Christian-Ehrlicher said in Linker Error:

      I still don't see a relation to Qt here except that you use an IDE which is built with Qt. I also don't get a linker error. If you need the documentation for qmake you can look here but your pro file is correct.

      Which leaves me hanging to where the problem is. Is there something else i can provide to troubleshoot this ?

      Christian EhrlicherC 1 Reply Last reply
      0
      • C Charon117

        @Christian-Ehrlicher said in Linker Error:

        I still don't see a relation to Qt here except that you use an IDE which is built with Qt. I also don't get a linker error. If you need the documentation for qmake you can look here but your pro file is correct.

        Which leaves me hanging to where the problem is. Is there something else i can provide to troubleshoot this ?

        Christian EhrlicherC Offline
        Christian EhrlicherC Offline
        Christian Ehrlicher
        Lifetime Qt Champion
        wrote on last edited by
        #7

        @Charon117 said in Linker Error:

        Is there something else i can provide to troubleshoot this ?

        Post the correct error message and the compiler you use.

        Qt Online Installer direct download: https://download.qt.io/official_releases/online_installers/
        Visit the Qt Academy at https://academy.qt.io/catalog

        C 1 Reply Last reply
        0
        • Christian EhrlicherC Christian Ehrlicher

          @Charon117 said in Linker Error:

          Is there something else i can provide to troubleshoot this ?

          Post the correct error message and the compiler you use.

          C Offline
          C Offline
          Charon117
          wrote on last edited by Charon117
          #8

          @Christian-Ehrlicher said in Linker Error:

          @Charon117 said in Linker Error:

          Is there something else i can provide to troubleshoot this ?

          Post the correct error message and the compiler you use.

          C:\Users\Name\Desktop\Neuer Ordner\build-SoftwareKursC-Desktop_Qt_5_15_2_MinGW_64_bit-Debug..\SoftwareKursC\main.c:114: error: undefined reference to ExercisesWeek2' debug/main.o: In function main':
          C:\Users\Name\Desktop\Neuer Ordner\build-SoftwareKursC-Desktop_Qt_5_15_2_MinGW_64_bit-Debug/../SoftwareKursC/main.c:114: undefined reference to `ExercisesWeek2'

          ExercisesWeek2() is the first function that is called in main.

          Compiler is MingW 64 bit, version 7.3 i believe.!

          Unbenannt6.png

          jsulmJ 1 Reply Last reply
          0
          • C Charon117

            @Christian-Ehrlicher said in Linker Error:

            @Charon117 said in Linker Error:

            Is there something else i can provide to troubleshoot this ?

            Post the correct error message and the compiler you use.

            C:\Users\Name\Desktop\Neuer Ordner\build-SoftwareKursC-Desktop_Qt_5_15_2_MinGW_64_bit-Debug..\SoftwareKursC\main.c:114: error: undefined reference to ExercisesWeek2' debug/main.o: In function main':
            C:\Users\Name\Desktop\Neuer Ordner\build-SoftwareKursC-Desktop_Qt_5_15_2_MinGW_64_bit-Debug/../SoftwareKursC/main.c:114: undefined reference to `ExercisesWeek2'

            ExercisesWeek2() is the first function that is called in main.

            Compiler is MingW 64 bit, version 7.3 i believe.!

            Unbenannt6.png

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

            @Charon117 said in Linker Error:

            ExercisesWeek2() is the first function that is called in main.

            And where is it defined? As the error messages says linker can't find its definition. Means: you either did not implement ExercisesWeek2, or you do not link the lib/object file containing ExercisesWeek2.

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

            C 1 Reply Last reply
            0
            • jsulmJ jsulm

              @Charon117 said in Linker Error:

              ExercisesWeek2() is the first function that is called in main.

              And where is it defined? As the error messages says linker can't find its definition. Means: you either did not implement ExercisesWeek2, or you do not link the lib/object file containing ExercisesWeek2.

              C Offline
              C Offline
              Charon117
              wrote on last edited by
              #10

              @jsulm said in Linker Error:

              @Charon117 said in Linker Error:

              ExercisesWeek2() is the first function that is called in main.

              And where is it defined? As the error messages says linker can't find its definition. Means: you either did not implement ExercisesWeek2, or you do not link the lib/object file containing ExercisesWeek2.

              The question clarifies that replacing the header file *.h with the appropriate *.c files works. This is the content of the header file:

              #ifndef SOFTWAREKURSC_H
              #define SOFTWAREKURSC_H

              void Rechteck(void);
              int ExercisesWeek1(void);
              int ExercisesWeek2(void);

              #endif // SOFTWAREKURSC_H

              and Christian Ehrlicher already said that it compiles for him on his system and that the pro file is correct.

              1 Reply Last reply
              0
              • C Offline
                C Offline
                Charon117
                wrote on last edited by
                #11

                OK, so i am convinced by now that this is a compiler error, because MingW seems to generate the other *.o objects in %TEMP%, wherever that is. If that is correct, how do i point the Qt Creator to check for %TEMP% ? Also, im not convinced that the object files are actually named correctly ?

                So i am not even sure if the compiler generates the object files, where they are, how they are named and how to tell Qt Creator where to find them.

                jsulmJ 1 Reply Last reply
                0
                • C Charon117

                  OK, so i am convinced by now that this is a compiler error, because MingW seems to generate the other *.o objects in %TEMP%, wherever that is. If that is correct, how do i point the Qt Creator to check for %TEMP% ? Also, im not convinced that the object files are actually named correctly ?

                  So i am not even sure if the compiler generates the object files, where they are, how they are named and how to tell Qt Creator where to find them.

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

                  @Charon117 said in Linker Error:

                  i am convinced by now that this is a compiler error

                  "undefined reference to" - is a linker error.

                  Please post the pro file and the whole build log of a complete rebuild.

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

                  C 1 Reply Last reply
                  0
                  • jsulmJ jsulm

                    @Charon117 said in Linker Error:

                    i am convinced by now that this is a compiler error

                    "undefined reference to" - is a linker error.

                    Please post the pro file and the whole build log of a complete rebuild.

                    C Offline
                    C Offline
                    Charon117
                    wrote on last edited by
                    #13

                    @jsulm said in Linker Error:

                    @Charon117 said in Linker Error:

                    i am convinced by now that this is a compiler error

                    "undefined reference to" - is a linker error.

                    Please post the pro file and the whole build log of a complete rebuild.

                    the drive link i posted contains the whole project. Can you see it ?

                    I dont know what the whole build log is, or where to find it, but i posted a picture here

                    Unbenannt6.png

                    jsulmJ 1 Reply Last reply
                    0
                    • C Charon117

                      @jsulm said in Linker Error:

                      @Charon117 said in Linker Error:

                      i am convinced by now that this is a compiler error

                      "undefined reference to" - is a linker error.

                      Please post the pro file and the whole build log of a complete rebuild.

                      the drive link i posted contains the whole project. Can you see it ?

                      I dont know what the whole build log is, or where to find it, but i posted a picture here

                      Unbenannt6.png

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

                      @Charon117 said in Linker Error:

                      the drive link i posted contains the whole project

                      I can't access it. pro file is just text, easy to post here...
                      Build log: all compiler and linker calls during the build. In QtCreator see "4 Compile Output" tab at the bottom.

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

                      C 1 Reply Last reply
                      0
                      • jsulmJ jsulm

                        @Charon117 said in Linker Error:

                        the drive link i posted contains the whole project

                        I can't access it. pro file is just text, easy to post here...
                        Build log: all compiler and linker calls during the build. In QtCreator see "4 Compile Output" tab at the bottom.

                        C Offline
                        C Offline
                        Charon117
                        wrote on last edited by
                        #15

                        @jsulm said in Linker Error:

                        @Charon117 said in Linker Error:

                        the drive link i posted contains the whole project

                        I can't access it. pro file is just text, easy to post here...
                        Build log: all compiler and linker calls during the build. In QtCreator see "4 Compile Output" tab at the bottom.

                        Why cant you access it ?

                        SoftwareKursC.pro:
                        TEMPLATE = app
                        CONFIG += console
                        CONFIG -= app_bundle
                        CONFIG -= qt

                        INCLUDEPATH +=
                        %TEMP%

                        SOURCES +=
                        ExercisesWeek1.c
                        ExercisesWeek2.c
                        Rechteck.c
                        main.c

                        HEADERS +=
                        SoftwareKursC.h

                        Tab4 output:
                        15:10:25: Running steps for project SoftwareKursC...
                        15:10:25: Configuration unchanged, skipping qmake step.
                        15:10:25: Starting: "C:\Coding\Qt\Tools\mingw810_64\bin\mingw32-make.exe" -j4
                        C:/Coding/Qt/Tools/mingw810_64/bin/mingw32-make -f Makefile.Debug
                        mingw32-make[1]: Entering directory 'C:/Users/Name/Desktop/Neuer Ordner/build-SoftwareKursC-Desktop_Qt_5_15_2_MinGW_64_bit-Debug'
                        gcc -c -fno-keep-inline-dllexport -g -Wall -Wextra -Wextra -DUNICODE -D_UNICODE -DWIN32 -DMINGW_HAS_SECURE_API=1 -DQT_QML_DEBUG -I..\SoftwareKursC -I. -I%TEMP% -IC:\Coding\Qt\5.15.2\mingw81_64\mkspecs\win32-g++ -o debug\main.o ..\SoftwareKursC\main.c
                        ..\SoftwareKursC\main.c: In function 'inputSales':
                        ..\SoftwareKursC\main.c:18:25: warning: unused parameter 'ABC' [-Wunused-parameter]
                        void inputSales(double* ABC){
                        ^
                        ..\SoftwareKursC\main.c: In function 'readText':
                        ..\SoftwareKursC\main.c:106:9: warning: unused variable 'symbol' [-Wunused-variable]
                        int symbol = getchar();
                        ^
                        ~
                        ..\SoftwareKursC\main.c:104:20: warning: unused parameter 'smallLettersCount' [-Wunused-parameter]
                        void readText(int *smallLettersCount, int *capitalLettersCount, int *whiteSpaceCount){
                        ~^
                        ~~~~~~~~~~
                        ..\SoftwareKursC\main.c:104:44: warning: unused parameter 'capitalLettersCount' [-Wunused-parameter]
                        void readText(int *smallLettersCount, int *capitalLettersCount, int *whiteSpaceCount){
                        ~^~~~~~~~~~~~~~~
                        ..\SoftwareKursC\main.c:104:70: warning: unused parameter 'whiteSpaceCount' [-Wunused-parameter]
                        void readText(int *smallLettersCount, int *capitalLettersCount, int *whiteSpaceCount){
                        ~^~~~~~~~~~~
                        ..\SoftwareKursC\main.c: In function 'main':
                        ..\SoftwareKursC\main.c:136:19: warning: format '%ld' expects a matching 'long int' argument [-Wformat=]
                        printf("%ld" );
                        ^
                        ..\SoftwareKursC\main.c:136:19: warning: format '%ld' expects a matching 'long int' argument [-Wformat=]
                        ..\SoftwareKursC\main.c: In function 'Exercise':
                        ..\SoftwareKursC\main.c:74:5: warning: 'i' is used uninitialized in this function [-Wuninitialized]
                        for(int i; i < count;){
                        ^

                        g++ -Wl,-subsystem,console -mthreads -o debug\SoftwareKursC.exe debug/main.o
                        debug/main.o: In function main': C:\Users\\Desktop\Neuer Ordner\build-SoftwareKursC-Desktop_Qt_5_15_2_MinGW_64_bit-Debug/../SoftwareKursC/main.c:114: undefined reference to ExercisesWeek2'
                        C:\Users\Name\Desktop\Neuer Ordner\build-SoftwareKursC-Desktop_Qt_5_15_2_MinGW_64_bit-Debug/../SoftwareKursC/main.c:116: undefined reference to `ExercisesWeek1'
                        collect2.exe: error: ld returned 1 exit status
                        mingw32-make[1]: *** [Makefile.Debug:68: debug/SoftwareKursC.exe] Error 1
                        mingw32-make[1]: Leaving directory 'C:/Users/Name/Desktop/Neuer Ordner/build-SoftwareKursC-Desktop_Qt_5_15_2_MinGW_64_bit-Debug'
                        mingw32-make: *** [Makefile:45: debug] Error 2
                        15:10:26: The process "C:\Coding\Qt\Tools\mingw810_64\bin\mingw32-make.exe" exited with code 2.
                        Error while building/deploying project SoftwareKursC (kit: Desktop Qt 5.15.2 MinGW 64-bit)
                        When executing step "Make"
                        15:10:26: Elapsed time: 00:01.

                        jsulmJ 1 Reply Last reply
                        0
                        • C Charon117

                          @jsulm said in Linker Error:

                          @Charon117 said in Linker Error:

                          the drive link i posted contains the whole project

                          I can't access it. pro file is just text, easy to post here...
                          Build log: all compiler and linker calls during the build. In QtCreator see "4 Compile Output" tab at the bottom.

                          Why cant you access it ?

                          SoftwareKursC.pro:
                          TEMPLATE = app
                          CONFIG += console
                          CONFIG -= app_bundle
                          CONFIG -= qt

                          INCLUDEPATH +=
                          %TEMP%

                          SOURCES +=
                          ExercisesWeek1.c
                          ExercisesWeek2.c
                          Rechteck.c
                          main.c

                          HEADERS +=
                          SoftwareKursC.h

                          Tab4 output:
                          15:10:25: Running steps for project SoftwareKursC...
                          15:10:25: Configuration unchanged, skipping qmake step.
                          15:10:25: Starting: "C:\Coding\Qt\Tools\mingw810_64\bin\mingw32-make.exe" -j4
                          C:/Coding/Qt/Tools/mingw810_64/bin/mingw32-make -f Makefile.Debug
                          mingw32-make[1]: Entering directory 'C:/Users/Name/Desktop/Neuer Ordner/build-SoftwareKursC-Desktop_Qt_5_15_2_MinGW_64_bit-Debug'
                          gcc -c -fno-keep-inline-dllexport -g -Wall -Wextra -Wextra -DUNICODE -D_UNICODE -DWIN32 -DMINGW_HAS_SECURE_API=1 -DQT_QML_DEBUG -I..\SoftwareKursC -I. -I%TEMP% -IC:\Coding\Qt\5.15.2\mingw81_64\mkspecs\win32-g++ -o debug\main.o ..\SoftwareKursC\main.c
                          ..\SoftwareKursC\main.c: In function 'inputSales':
                          ..\SoftwareKursC\main.c:18:25: warning: unused parameter 'ABC' [-Wunused-parameter]
                          void inputSales(double* ABC){
                          ^
                          ..\SoftwareKursC\main.c: In function 'readText':
                          ..\SoftwareKursC\main.c:106:9: warning: unused variable 'symbol' [-Wunused-variable]
                          int symbol = getchar();
                          ^
                          ~
                          ..\SoftwareKursC\main.c:104:20: warning: unused parameter 'smallLettersCount' [-Wunused-parameter]
                          void readText(int *smallLettersCount, int *capitalLettersCount, int *whiteSpaceCount){
                          ~^
                          ~~~~~~~~~~
                          ..\SoftwareKursC\main.c:104:44: warning: unused parameter 'capitalLettersCount' [-Wunused-parameter]
                          void readText(int *smallLettersCount, int *capitalLettersCount, int *whiteSpaceCount){
                          ~^~~~~~~~~~~~~~~
                          ..\SoftwareKursC\main.c:104:70: warning: unused parameter 'whiteSpaceCount' [-Wunused-parameter]
                          void readText(int *smallLettersCount, int *capitalLettersCount, int *whiteSpaceCount){
                          ~^~~~~~~~~~~
                          ..\SoftwareKursC\main.c: In function 'main':
                          ..\SoftwareKursC\main.c:136:19: warning: format '%ld' expects a matching 'long int' argument [-Wformat=]
                          printf("%ld" );
                          ^
                          ..\SoftwareKursC\main.c:136:19: warning: format '%ld' expects a matching 'long int' argument [-Wformat=]
                          ..\SoftwareKursC\main.c: In function 'Exercise':
                          ..\SoftwareKursC\main.c:74:5: warning: 'i' is used uninitialized in this function [-Wuninitialized]
                          for(int i; i < count;){
                          ^

                          g++ -Wl,-subsystem,console -mthreads -o debug\SoftwareKursC.exe debug/main.o
                          debug/main.o: In function main': C:\Users\\Desktop\Neuer Ordner\build-SoftwareKursC-Desktop_Qt_5_15_2_MinGW_64_bit-Debug/../SoftwareKursC/main.c:114: undefined reference to ExercisesWeek2'
                          C:\Users\Name\Desktop\Neuer Ordner\build-SoftwareKursC-Desktop_Qt_5_15_2_MinGW_64_bit-Debug/../SoftwareKursC/main.c:116: undefined reference to `ExercisesWeek1'
                          collect2.exe: error: ld returned 1 exit status
                          mingw32-make[1]: *** [Makefile.Debug:68: debug/SoftwareKursC.exe] Error 1
                          mingw32-make[1]: Leaving directory 'C:/Users/Name/Desktop/Neuer Ordner/build-SoftwareKursC-Desktop_Qt_5_15_2_MinGW_64_bit-Debug'
                          mingw32-make: *** [Makefile:45: debug] Error 2
                          15:10:26: The process "C:\Coding\Qt\Tools\mingw810_64\bin\mingw32-make.exe" exited with code 2.
                          Error while building/deploying project SoftwareKursC (kit: Desktop Qt 5.15.2 MinGW 64-bit)
                          When executing step "Make"
                          15:10:26: Elapsed time: 00:01.

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

                          @Charon117 said in Linker Error:

                          INCLUDEPATH +=
                          %TEMP%

                          Remove these two lines.

                          For some reason only main.c file is built. Did you try a complete rebuild:

                          • Delete build folder
                          • Run qmake
                          • Build

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

                          C 1 Reply Last reply
                          0
                          • M Offline
                            M Offline
                            mchinand
                            wrote on last edited by
                            #17

                            You have to escape (add a backslash, \) the newlines so the list of source files will be treated as a single input line. See the SOURCES example here: https://doc.qt.io/qt-5/qmake-project-files.html#variables

                            Christian EhrlicherC 1 Reply Last reply
                            0
                            • M mchinand

                              You have to escape (add a backslash, \) the newlines so the list of source files will be treated as a single input line. See the SOURCES example here: https://doc.qt.io/qt-5/qmake-project-files.html#variables

                              Christian EhrlicherC Offline
                              Christian EhrlicherC Offline
                              Christian Ehrlicher
                              Lifetime Qt Champion
                              wrote on last edited by
                              #18

                              I really wonder why you upload a project but then don't use the pro-file which is in there which is correct...

                              TEMPLATE = app
                              CONFIG += console
                              CONFIG -= app_bundle
                              CONFIG -= qt
                              
                              SOURCES += \
                                      ExercisesWeek1.c \
                                      ExercisesWeek2.c \
                                      Rechteck.c \
                                      main.c
                              
                              HEADERS += \
                                  SoftwareKursC.h
                              

                              Qt Online Installer direct download: https://download.qt.io/official_releases/online_installers/
                              Visit the Qt Academy at https://academy.qt.io/catalog

                              1 Reply Last reply
                              0
                              • jsulmJ jsulm

                                @Charon117 said in Linker Error:

                                INCLUDEPATH +=
                                %TEMP%

                                Remove these two lines.

                                For some reason only main.c file is built. Did you try a complete rebuild:

                                • Delete build folder
                                • Run qmake
                                • Build
                                C Offline
                                C Offline
                                Charon117
                                wrote on last edited by
                                #19

                                @jsulm said in Linker Error:

                                @Charon117 said in Linker Error:

                                INCLUDEPATH +=
                                %TEMP%

                                Remove these two lines.

                                For some reason only main.c file is built. Did you try a complete rebuild:

                                • Delete build folder
                                • Run qmake
                                • Build

                                Ok, so the weirdest thing happened. It works now.

                                No clue how that happened, or what i did to change it. But ... lol ... check this out.

                                I delete the whole build folder, eg.
                                build-SoftwareKursC-Desktop_Qt_5_15_2_MinGW_64_bit-Debug

                                Then i compile with Qt Creator, and i only use #include *.c files. Then i comment out the *.c includes and enable the *.h includes. This leads us to exactly the error i described.

                                Another delete later:
                                I compile this time with *.h files and then change them to *.c files. I get a completely different linker error, but a linker error nonetheless.

                                Another delete:
                                I only compile with *.h includes and it works. No changing afterwards.

                                Another delete:
                                I only compile with *.c includes and it works. No changing afterwards.

                                Conclusion:
                                Changing compilation from *.h to *.c includes leads to linker errors, as well as changes from *.c to *.h includes. Deleting the build folder in both cases is the solution.

                                What kind of clusterfucking mindblowing error is this ?

                                Thanks for the help, i guess i will mark this as solved. Thanks to @jsulm for suggesting the correct solution. I will make a note that in case of mysterious bugs deleting the build folder is priority number one. If somebody has an explanation of why this is happening they can add it as another post.

                                Thank you all for participating in this discussion.

                                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