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.
  • SGaistS Offline
    SGaistS Offline
    SGaist
    Lifetime Qt Champion
    wrote on last edited by
    #25

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

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

    D 1 Reply Last reply
    0
    • 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