我只是不明白我错在哪里。 编译器抱怨
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 &)" (?splitW@@YA?AV?$vector@V?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@V?$allocator@V?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@2@@std@@AAV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@ABV32@@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);
splitW()
第一个参数的类型在头文件中声明为wstring&
,但在源代码中定义为const wstring&
。请使它们保持一致。
声明:
vector<wstring> splitW( wstring& str, const wstring &uSep);
定义:
vector<wstring> splitW(const wstring& uMain, const wstring &uSplitBy)