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. Undefined refence to "main"

Undefined refence to "main"

Scheduled Pinned Locked Moved Solved General and Desktop
35 Posts 5 Posters 7.8k 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.
  • S Offline
    S Offline
    SGaist
    Lifetime Qt Champion
    wrote on 26 Dec 2019, 18:50 last edited by
    #24

    As already pointed out earlier, your project, as it is can not compile.

    As for your LIBS statement, the library is generated in the shadow build folder, not in your sources where you are pointing it to. Use the OUT_PWD variable as starting folder.

    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
    • R Offline
      R Offline
      R.griset
      wrote on 27 Dec 2019, 09:46 last edited by
      #25

      Hello SGaist and merry Christmas,

      Thanks again for your help but once again I can't figure out what you want me to do exactly. So here is how I understood your advice :

      • As you told me in one of your first post I need to set "TEMPLATE = lib" instead of "TEMPLATE = app" in my src.pro file
      • Now when I compile the compiler doesn't find -lmyapp (by the way I don't know if "myapp" is a generic name ) because in my app.pro file I point to ../src in line "LIBS += -L../src -lmyapp"
      • Instead of ../src I tried $OUT_PWD or $OUT_PWD/src but the compiler still doesn't find -lmyapp :(

      I guess I didn't understand your post

      A 1 Reply Last reply 27 Dec 2019, 10:09
      0
      • R R.griset
        27 Dec 2019, 09:46

        Hello SGaist and merry Christmas,

        Thanks again for your help but once again I can't figure out what you want me to do exactly. So here is how I understood your advice :

        • As you told me in one of your first post I need to set "TEMPLATE = lib" instead of "TEMPLATE = app" in my src.pro file
        • Now when I compile the compiler doesn't find -lmyapp (by the way I don't know if "myapp" is a generic name ) because in my app.pro file I point to ../src in line "LIBS += -L../src -lmyapp"
        • Instead of ../src I tried $OUT_PWD or $OUT_PWD/src but the compiler still doesn't find -lmyapp :(

        I guess I didn't understand your post

        A Offline
        A Offline
        aha_1980
        Lifetime Qt Champion
        wrote on 27 Dec 2019, 10:09 last edited by
        #26

        @R-griset said in Undefined refence to "main":

        As you told me in one of your first post I need to set "TEMPLATE = lib" instead of "TEMPLATE = app" in my src.pro file

        If you want to build a library, use the former one, if you want to build a program, use "app".

        Now when I compile the compiler doesn't find -lmyapp (by the way I don't know if "myapp" is a generic name )

        You tell the linker to link against a library libmyapp.so, and -L specifies the path to this library. So check if you have such a library (and where!), and if it already exists at the time the linker is invoked.

        By the way: /home/d07876/Desktop/Ancrage/Code interface graphique ancrage/build-anchorage-QT5-Debug/app'

        I strongly advice against project paths containing spaces or other special characters! Already this small piece might lead to build, debug or deploy errors.

        Regards

        Qt has to stay free or it will die.

        1 Reply Last reply
        0
        • R Offline
          R Offline
          R.griset
          wrote on 27 Dec 2019, 12:50 last edited by
          #27

          Hello aha_1980 and thanks for your advices,

          No I don't have "libmyapp.so" anywhere because it should be compile from src folder and call by the application from app folder. At the beggining in the code it was written "app" but it doesn't compile because it is looking for a main function which doesn't exist in src.

          Thanks for the advice about the folder name, once again it s not my project but I changed the name ;)

          1 Reply Last reply
          0
          • S Offline
            S Offline
            SGaist
            Lifetime Qt Champion
            wrote on 27 Dec 2019, 13:05 last edited by
            #28

            That's the main issue here: the project as written by default can't compile because what you have in the arc folder should be built as a library and that library linked to your application.

            If anything, I would recommend starting by cleaning up the project structure so you have something clear to use.

            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
            • R Offline
              R Offline
              R.griset
              wrote on 27 Dec 2019, 13:36 last edited by
              #29

              Ok lets try :),

              I compiled src as lib appart and i'm having a libsrc.so in a build-src-QT5-Debug folder

              Now, I removed src folder from the MainPro.pro and I added the line

              LIBS += -L../build-src-QT5-Debug/ -lsrc in my app.pro file

              And i'm still getting an error :

              14:32:57: Starting: "/usr/bin/make"
              cd app/ && ( test -e Makefile || /usr/lib/x86_64-linux-gnu/qt5/bin/qmake /home/d07876/Desktop/Ancrage/UIAncrage/UI_11_05_test1Folder/app/app.pro -spec linux-g++-64 CONFIG+=debug CONFIG+=qml_debug -o Makefile ) && /usr/bin/make -f Makefile
              make[1]: Entering directory '/home/d07876/Desktop/Ancrage/UIAncrage/build-anchorage-QT5-testLibAppart/app'
              /usr/lib/x86_64-linux-gnu/qt5/bin/qmake -spec linux-g++-64 CONFIG+=debug CONFIG+=qml_debug -o Makefile ../../UI_11_05_test1Folder/app/app.pro
              g++ -Wl,-rpath,'$ORIGIN/../src',--enable-new-dtags -o app main.o -L/usr/X11R6/lib64 -L../build-src-QT5-Debug/ -lsrc -lQt5Widgets -lQt5Gui -lQt5Core -lGL -lpthread
              /usr/bin/ld: cannot find -lsrc

              1 Reply Last reply
              0
              • S Offline
                S Offline
                SGaist
                Lifetime Qt Champion
                wrote on 27 Dec 2019, 13:44 last edited by
                #30

                As already suggested use OUT_PWD to have a full path to the folder where the library can be found.

                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
                • R Offline
                  R Offline
                  R.griset
                  wrote on 27 Dec 2019, 13:57 last edited by
                  #31

                  But if I compile src appart from app then the OUT_PWD variable doesn't lead to the right path, no ?

                  1 Reply Last reply
                  0
                  • S Offline
                    S Offline
                    SGaist
                    Lifetime Qt Champion
                    wrote on 27 Dec 2019, 14:06 last edited by
                    #32

                    How are you building it ?

                    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
                    • R Offline
                      R Offline
                      R.griset
                      wrote on 27 Dec 2019, 14:11 last edited by
                      #33

                      Maybe we are missunderstanding from the very beginning, src.pro is not a library but only the sources of the project, in app folder you have nothing except a main function directly calling function from src folder. I think my predecessor who wrote the code just separate it to be clearer and that's why the TEMPLATE was app because it is an app whose source files are in src folder.

                      I'm building it by opening directly the src.pro as a project and building it as a library before trying to build the app

                      1 Reply Last reply
                      0
                      • R Offline
                        R Offline
                        R.griset
                        wrote on 27 Dec 2019, 14:39 last edited by
                        #34

                        I think I found it !! I just created a new project and copy/paste all files from src into it, after some settings it seems to compile.

                        I'll test if everything works but I'm probably close from success ;)

                        1 Reply Last reply
                        2
                        • R Offline
                          R Offline
                          R.griset
                          wrote on 27 Dec 2019, 15:12 last edited by
                          #35

                          It works :D thanks all and especially SGaist for all your help

                          1 Reply Last reply
                          0

                          33/35

                          27 Dec 2019, 14:11

                          • Login

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