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.1k 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.
  • 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