2014-02-02 2 views
0

Я просто не вижу, где я ошибся. Компилятор жалуетсяC++ Неразрешенный символ

Error 215 error LNK2001: Unresolved external symbol ""class std::vector<class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> >,class std::allocator<class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> > > > __cdecl splitW(class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> > &,class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> > const &)" ([email protected]@[email protected][email protected][email protected][email protected]@@[email protected][email protected]@@[email protected]@[email protected][email protected][email protected][email protected]@@[email protected][email protected]@@[email protected]@@[email protected]@[email protected]@[email protected][email protected][email protected]@@[email protected][email protected]@@[email protected]@@Z)". C:\voice\clsText.obj voice 

Но я не вижу, где я пошел неправильно. Может кто-нибудь сказать мне, как анализировать это сообщение об ошибке? Я получаю это довольно часто, но потом я никогда не помню, как я это решил.

спасибо!

Это мой код в strhelper.cpp:

vector<wstring> splitW(const wstring& uMain, const wstring &uSplitBy) 
{ 
    vector<wstring>s; 

    int iStart=0; 

    for (;;) 
    { 
     int iPos=uMain.find(uSplitBy,iStart); 
     if (iPos==-1) 
     { 
      wstring s1; 
      s1 = uMain.substr(iStart,uMain.size() - iStart); 
      if (s1.size()>0) 
      { 
       s.push_back(s1); 
      } 
      break; 
     } 
     else 
     { 
      wstring s2; 
      s2 = uMain.substr(iStart,iPos-iStart); 
      s.push_back(s2); 
      iStart = iPos + 1; 
     } 
    } 
    return s; 
} 

И это часть заголовка, который содержит объявление:

void replaceOnce(wstring& uText,const wstring& uSearchFor,const wstring& uReplaceWith,bool uTextCompare); 
vector<wstring> splitW(wstring &str, const wstring &uSep); 
vector<wstring> splitAToWVec(const string& uMain, const string& uSplitBy); 
vector<string> splitAToAVec(const string& uMain, const string& uSplitBy); 
+1

Показать гораздо больше: исходный код (с помощью этого символа), ваша команда компилятор и флаги. Возможно, у вас есть другая проблема (например, сбой аппаратного диска) –

ответ

4

Тип 1-го параметра splitW() объявлен как wstring& в заголовочном файле, но в качестве исходного кода определяется как const wstring&. Пожалуйста, сделайте их последовательными.

3

Декларация:

vector<wstring> splitW(  wstring& str, const wstring &uSep); 

Определение:

vector<wstring> splitW(const wstring& uMain, const wstring &uSplitBy)