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