开发者

searching vector [ error included version & orginal code & Makefile ]

  • It gives so many error, why ?
  • How can I fix it ?

My real code ;

 int  SearchUserName (  string searched,   vector<User *> list  )开发者_Go百科   {
 vector<User *> :: iterator it ;
 for ( it = list.begin() ; it < list.end ( ) ; ++it ) {
    const  string tmp = (*it) -> getUsername() ;
    if ( tmp  == searched ) return 1 ;
 }     
return 0 ;
}
  // SocialNet :: createUser
  void SocialNet :: createUser (const string username, const string name, \
                          const string surname)   throw ( SocialNetException ) {
  int tmp = SearchUserName ( username, this -> users ) ;
  if(  tmp  == 0) {
     User *tmp = NULL ;
     tmp = new User( username, name, surname ) ;
     users.push_back ( tmp ) ;     
       return ;
 }
 throw  SocialNetException (USER_ALREADY_EXISTS, username)  ; 
}

Finally, I have find, Error:

(.text+0x20): undefined reference to main' /tmp/cckzaRBZ.o: In functionSearchUserName(std::basic_string, std::allocator >, std::vector >)': SocialNet.cpp:(.text+0x47): undefined reference to User::getUsername() const' /tmp/cckzaRBZ.o: In functionSocialNet::createUser(std::basic_string, std::allocator >, std::basic_string, std::allocator >, std::basic_string, std::allocator >)': SocialNet.cpp:(.text+0x258): undefined reference to `User::User(std::basic_string, std::allocator >, std::basic_string, std::allocator >, std::basic_string, std::allocator >)'

EDIT: in makefile ;

 CXX = g++
 CXXFLAGS_W = -Werror -Wunused-variable -Wunused-value -Wunused-function \
         -Wfloat-equal -Wall
 CXXFLAGS_M = -ansi  -pedantic-errors
 CXXFLAGS = ${CXXFLAGS_M} ${CXFLAGS_W}

 all:    main
        ./main

compile ; make filename


You're only compiling one file.

something like

main: foo.o bar.o
    $(CXX) -o $@ foo.o bar.o

listing all your object files


Comment all your code. And uncomment line after line to determine which line causing the problem.


I'm feeling lucky.

class people
{
public: // <--- add this line

    string getpersonname();

};


I think your linker errors are being caused by the fact that one of your .cpp files is not being compiled into the program.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜