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. :-1: error: symbol(s) not found for architecture x86_64
Forum Updated to NodeBB v4.3 + New Features

:-1: error: symbol(s) not found for architecture x86_64

Scheduled Pinned Locked Moved Unsolved General and Desktop
42 Posts 6 Posters 13.6k Views 3 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.
  • SGaistS SGaist

    Try removing CONFIG += c++11 (it is now enabled by default since Qt 5.7) and do a full re-build.

    D Offline
    D Offline
    Dhara
    wrote on last edited by
    #26

    @SGaist said in :-1: error: symbol(s) not found for architecture x86_64:

    CONFIG += c++11

    I removed the same and built the whole project after a clean but i still face the same issue. Is it necessary that my cpp files should extend QObject ?

    jsulmJ V 2 Replies Last reply
    0
    • D Dhara

      @SGaist said in :-1: error: symbol(s) not found for architecture x86_64:

      CONFIG += c++11

      I removed the same and built the whole project after a clean but i still face the same issue. Is it necessary that my cpp files should extend QObject ?

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

      @Dhara I don't know whether it is related, but why do you have these lines in your pro file:

      stdlib -=libc++
      stdlib -=libstdc++
      

      You should try a simple project with unit tests to be sure it is working in general.

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

      D 1 Reply Last reply
      0
      • jsulmJ jsulm

        @Dhara I don't know whether it is related, but why do you have these lines in your pro file:

        stdlib -=libc++
        stdlib -=libstdc++
        

        You should try a simple project with unit tests to be sure it is working in general.

        D Offline
        D Offline
        Dhara
        wrote on last edited by
        #28

        @jsulm @SGaist The issue was with diff arguments being passed. I cannot modify the test case which passes char * to QCOMPARE, but i dont know how to make a char * value be returned from a function using a string*, in other words i would like to convert string * to char * and without the const issues. How should i do that ?

        jsulmJ 1 Reply Last reply
        0
        • D Dhara

          @jsulm @SGaist The issue was with diff arguments being passed. I cannot modify the test case which passes char * to QCOMPARE, but i dont know how to make a char * value be returned from a function using a string*, in other words i would like to convert string * to char * and without the const issues. How should i do that ?

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

          @Dhara you could do

          QCOMPARE(u.uri(), string());
          

          then you compare two strings

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

          D 1 Reply Last reply
          0
          • jsulmJ jsulm

            @Dhara you could do

            QCOMPARE(u.uri(), string());
            

            then you compare two strings

            D Offline
            D Offline
            Dhara
            wrote on last edited by
            #30

            @jsulm Yes, but this would touch the unit test, i have been given conditions not to change the unit test.

            jsulmJ 1 Reply Last reply
            0
            • D Dhara

              @jsulm Yes, but this would touch the unit test, i have been given conditions not to change the unit test.

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

              @Dhara I don't know your requirements, but actually tests should be adapted to production code not other way around.
              Alternative would be to return char* instead of a string, but I never would do this just because unit tests would like to have it this way.

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

              D 1 Reply Last reply
              0
              • jsulmJ jsulm

                @Dhara I don't know your requirements, but actually tests should be adapted to production code not other way around.
                Alternative would be to return char* instead of a string, but I never would do this just because unit tests would like to have it this way.

                D Offline
                D Offline
                Dhara
                wrote on last edited by
                #32

                @jsulm your point is true, but what about the TDD approach ?

                D 1 Reply Last reply
                0
                • D Dhara

                  @jsulm your point is true, but what about the TDD approach ?

                  D Offline
                  D Offline
                  Dhara
                  wrote on last edited by
                  #33

                  @jsulm : another question if you could assist please, i get this error now :

                  duplicate symbol _main in:
                      test_user.o
                      test_group.o
                  
                  mrjjM 1 Reply Last reply
                  0
                  • D Dhara

                    @jsulm : another question if you could assist please, i get this error now :

                    duplicate symbol _main in:
                        test_user.o
                        test_group.o
                    
                    mrjjM Offline
                    mrjjM Offline
                    mrjj
                    Lifetime Qt Champion
                    wrote on last edited by
                    #34

                    @Dhara said in :-1: error: symbol(s) not found for architecture x86_64:

                    _main

                    it means that what ever _main is, its include in both
                    test_user and test_group

                    This often happens if its a variable and its define in .h file.

                    So what is _main ?
                    function / variable ?

                    D 1 Reply Last reply
                    1
                    • mrjjM mrjj

                      @Dhara said in :-1: error: symbol(s) not found for architecture x86_64:

                      _main

                      it means that what ever _main is, its include in both
                      test_user and test_group

                      This often happens if its a variable and its define in .h file.

                      So what is _main ?
                      function / variable ?

                      D Offline
                      D Offline
                      Dhara
                      wrote on last edited by
                      #35

                      @mrjj there is no variable named _main or even a function named that. i do have one main.cpp file.

                      mrjjM 1 Reply Last reply
                      0
                      • D Dhara

                        @mrjj there is no variable named _main or even a function named that. i do have one main.cpp file.

                        mrjjM Offline
                        mrjjM Offline
                        mrjj
                        Lifetime Qt Champion
                        wrote on last edited by
                        #36

                        @Dhara
                        Did you move the main function or anything like that?
                        Try to delete the build folder and run qmake+build all.
                        Just to be sure all .o is created fresh.

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

                          There's no such restriction in TDD.

                          In TDD, the goal is to have your code tested all along, not that the tests are written in stones and that you should workaround them in your production code.

                          If a function needs to have its signature changed, then update the test so you can validate the new version of that function.

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

                          D 2 Replies Last reply
                          2
                          • SGaistS SGaist

                            There's no such restriction in TDD.

                            In TDD, the goal is to have your code tested all along, not that the tests are written in stones and that you should workaround them in your production code.

                            If a function needs to have its signature changed, then update the test so you can validate the new version of that function.

                            D Offline
                            D Offline
                            Dhara
                            wrote on last edited by
                            #38

                            @SGaist , @jsulm i updated my test cases and still trying to fix other issues.
                            @mrjj : i have updated my code , let's see if i get the same error again :(

                            1 Reply Last reply
                            0
                            • SGaistS SGaist

                              There's no such restriction in TDD.

                              In TDD, the goal is to have your code tested all along, not that the tests are written in stones and that you should workaround them in your production code.

                              If a function needs to have its signature changed, then update the test so you can validate the new version of that function.

                              D Offline
                              D Offline
                              Dhara
                              wrote on last edited by
                              #39

                              @SGaist @jsulm @mrjj :

                              I now get :

                              Undefined symbols for architecture x86_64:
                                "contact::setName(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >)", referenced from:
                                    group::group(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) in group.o
                              

                              Any suggestions?

                              1 Reply Last reply
                              0
                              • D Dhara

                                Hi

                                I am quite new to QT. I have created a subdirs project that has the main app part and also test unit project in it. However when i build the whole project i get errors of the kinds below:

                                Undefined symbols for architecture x86_64:
                                  "user::setStatus(user::Status)", referenced from:
                                      TestUser::cannotSetNullUserStatus() in test_user.o
                                      TestUser::canChangeUserStatusToOffline() in test_user.o
                                      TestUser::canChangeUserStatusToOnline() in test_user.o
                                      TestUser::copyOfUserSharesStatus1() in test_user.o
                                      TestUser::copyOfUserSharedStatus2() in test_user.o
                                  "user::operator=(user const&)", referenced from:
                                      void std::__1::list<user, std::__1::allocator<user> >::assign<user const*>(user const*, user const*, std::__1::enable_if<__is_input_iterator<user const*>::value, void>::type*) in test_group.o
                                      void std::__1::list<user, std::__1::allocator<user> >::assign<std::__1::__list_const_iterator<user, void*> >(std::__1::__list_const_iterator<user, void*>, std::__1::__list_const_iterator<user, void*>, std::__1::enable_if<__is_input_iterator<std::__1::__list_const_iterator<user, void*> >::value, void>::type*) in test_group.o
                                  "bool QTest::qCompare<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, char [11]>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, char const (&) [11], char const*, char const*, char const*, int)", referenced from:
                                      TestGroup::copyOfGroupSharesName1() in test_group.o
                                      TestGroup::contactFromGroupSharesName1() in test_group.o
                                      TestGroup::contactFromGroupSharesName2() in test_group.o```
                                
                                Can anyone please guide me where i am wrong? I can share in the cpp code file too:
                                

                                user::Status& user::setStatus(user::Status status) {
                                if (!isNull()) {
                                userStatus = new user::Status;
                                *userStatus = status;
                                }
                                return *userStatus;
                                }

                                
                                The header file has this method declaration too. I need to somehow finish this soon, and i tried googling but i dont understand what i should do.
                                
                                Please help.
                                D Offline
                                D Offline
                                Dhara
                                wrote on last edited by Dhara
                                #40

                                @jsulm @SGaist @mrjj :

                                Thanks alot for the help that you have been giving me. I managed to fix all the issues and also the duplicate error meant that i had to create two subprojects for both the test cases, i have no clue what was repeating but doing this solved the issue.

                                I updated the test cases too so that they would match QCOMPARE's definition.

                                I also deleted std -= libc++ and the other line and also removed C++11 config line too. Removing these lines did not harm the project.

                                1 Reply Last reply
                                1
                                • Pradeep KumarP Offline
                                  Pradeep KumarP Offline
                                  Pradeep Kumar
                                  wrote on last edited by Pradeep Kumar
                                  #41

                                  Hi,

                                  @Dhara
                                  please move it solved state if u have the got solution and post ur solution so others will be helped from ur answer.

                                  Thanks,

                                  Pradeep Kumar
                                  Qt,QML Developer

                                  1 Reply Last reply
                                  0
                                  • D Dhara

                                    @SGaist said in :-1: error: symbol(s) not found for architecture x86_64:

                                    CONFIG += c++11

                                    I removed the same and built the whole project after a clean but i still face the same issue. Is it necessary that my cpp files should extend QObject ?

                                    V Offline
                                    V Offline
                                    vineesh_tp
                                    wrote on last edited by
                                    #42

                                    @Dhara same issue exist for me too

                                    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