【问题标题】:Linker Error (undefined reference to 'function')?链接器错误(未定义对“函数”的引用)?
【发布时间】:2014-09-11 00:02:52
【问题描述】:

我是 C++ 新手,我在收到错误消息时尝试编译程序

undefined reference to '(lengthy void function name)'

阅读了一下之后,我认为我的程序存在所谓的链接器错误(如果我错了,请纠正我)。我没有在这个程序中使用任何头文件,我的函数原型、函数调用(在 main 中)和我的函数定义在括号内都有相同的变量。我的印象是这些错误主要是由拼写错误引起的,但是在仔细研究代码之后,我认为这里不是这种情况。链接器错误的其他原因是什么(请用新手可以理解的术语)?

【问题讨论】:

  • 如果您发布代码,您更有可能获得帮助。
  • 如果您使用 c++ 编程,那么拼写错误通常会导致编译器错误,而不是链接器错误。链接器错误主要是由于未链接到正确的库/目标文件或忘记实现特定功能。
  • 这通常意味着您在代码中的某处拼错了lengthlengthy,或者您正在使用一个函数说lengthy (foo),而您要么没有包含标题,而是在它之前使用它已定义,忘记链接库或忘记定义lengthy (foo)
  • 对于我的格式不正确,我深表歉意,但感谢那些提供输入的人。问题现已解决。

标签: c++ linker


【解决方案1】:

没有您的代码,几乎不可能说出问题所在,但是,如果我不得不猜测,您可能在 main 之后定义了您的函数,因此 main 无法访问它。例如:

int main()
{
    //Call to lengthy void function
}

void lengthyFunction()
{
    //code
}

只需将您的函数定义剪切并粘贴到 main 之前:

void lengthyFunction()
{
    //code
}

int main()
{
    //call to lengthy void function
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-12
    相关资源
    最近更新 更多