搜索矢量[错误包括版本&原始代码& Makefile]

时间:2011-03-05 14:33:50

标签: c++

  • 它给出了很多错误,为什么?
  • 我该如何解决?

我的真实代码;

 int  SearchUserName (  string searched,   vector<User *> list  )   {
 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)  ; 
}

最后,我找到了,错误:

(。text + 0x20):对main' /tmp/cckzaRBZ.o: In function SearchUserName(std :: basic_string,std :: allocator&gt;,std :: vector&gt;)'的未定义引用: SocialNet.cpp :(。text + 0x47):对User::getUsername() const' /tmp/cckzaRBZ.o: In function SocialNet :: createUser的未定义引用(std :: basic_string,std :: allocator&gt;,std :: basic_string,std :: allocator&gt;,std: :basic_string,std :: allocator&gt;)': SocialNet.cpp :(。text + 0x258):未定义引用`User :: User(std :: basic_string,std :: allocator&gt;,std :: basic_string,std :: allocator&gt ;,std :: basic_string,std :: allocator&gt;)'

编辑: 在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

编译; make filename

4 个答案:

答案 0 :(得分:1)

你只是在编译一个文件。

类似

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

列出所有目标文件

答案 1 :(得分:0)

评论您的所有代码。并逐行取消注释以确定导致问题的哪一行。

答案 2 :(得分:0)

我很幸运。

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

    string getpersonname();

};

答案 3 :(得分:0)

我认为您的链接器错误是由于您的某个.cpp文件未编译到程序中而引起的。