2013-09-15 3 views
1

Может кто-нибудь сказать мне, что вызывает эту ошибку?ошибка: ld вернулся 1 статус выхода

/tmp/ccHWwGhh.o: In function `main': A2.cpp:(.text+0x407): undefined reference to `binarysearch(std::string, std::vector<std::string, std::allocator<std::string> >)' collect2: error: ld returned 1 exit status 

Вот мой код:

//Located before main() 
void binarysearch(string key, vector<string>& f2); 

//Located in main() 
binarysearch(key, file2); 
//key is a string, file2 is a vector<string> 

//Here is my code defining the function: 
void binaraysearch(string key, vector<string> f2){ 
    sort_vector(f2); 
    int mid = 0; 
    int left = 0; 
    int right = f2.size(); 
    bool found = false; 
    while (left < right){ 
      mid = left + (left+right)/2; 
      if (key > f2[mid]){ 
        left = mid + 1; 
      } 
      else if(key < f2[mid]){ 
        right = mid; 
      } 
      else{ 
        found == true; 
      } 
    } 
    if (found == true){ 
      cout << "YES: " << key << endl; 
    } 
    else{ 
      cout << " NO: " << key << endl; 
    } 
} 
+0

На самом деле, помимо этого, в определении функции есть слово «бит». –

ответ

2

опечатка (или два):

//Located before main() 
void binarysearch(string key, vector<string>& f2); 

//Located in main() 
binarysearch(key, file2); 
//key is a string, file2 is a vector<string> 

//Here is my code defining the function: 
void binaraysearch(string key, vector<string> f2){ 
     ^
      here 

Один слишком много элементов а в определении функции. Существует также несоответствие между vector<string> и vector<string>&, что тоже не поможет.

2

Декларация функции заключается в следующем,

void binarysearch(string key, vector<string>& f2); 

, где, как в определении функции она стала,

void binaraysearch(string key, vector<string> f2){ 

} 

Это может быть несоответствие типов.

Смежные вопросы