0
每当我编译我的代码,G ++返回该错误消息(这只是一个segement剩下的更多的是相同的。):未定义refernece编译使用g ++一个文件时
text.cpp:(.text+0x2b82): undefined reference to `parser(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)'
/tmp/ccSFOyBc.o:text.cpp:(.text+0x2c3c): more undefined references to `parser(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)' follow
/tmp/ccSFOyBc.o: In function `main':
text.cpp:(.text+0x2f02): undefined reference to `contains(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)'
text.cpp:(.text+0x30d2): undefined reference to `contains(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)'
分析器,并包含有我创建的两个函数都存在于程序中。我听说这个问题发生时,你不链接库或忘记将多个文件链接在一起,但我只使用一个文件(text.cpp),并有一个库(-lncurses),这些错误发生在我定义的函数该程序。我编了g++ text.cpp -lncurses
。我使用最新的g ++使用Fedora Linux 24。
段: 功能中的问题:
void fight(vector<string> *i);
bool contains(vector<string> *v, string s);
bool parser(int a, string s);
void printinventory(vector<string> *i);
包含:
bool contains(vector<string> v, string s)
{
for(unsigned int i=0; i < v.size(); i++)
{
if(v.at(i)==s)
{
return true;
break;
}
}
return false;
}
函数调用(这两种解析器和包含在在此位置误差输出的前两行中引用):
if(parser(6, stringinput) && contains(inventory, "Planck Plank") && currx == 0 && curry == 1 && currz == 2 && !planklaids) {
任何想法这是什么意思?
没有看到您的代码将很难帮助。 –
我添加了一些代码。我尝试了不同版本的g ++,但没有改变。 – Coupon22
找到了。包含的内容必须是: bool contains(向量 * v,字符串s) –
Coupon22