经过数小时和数小时的程序工作,并消除了所有的语法错误,我遇到了这个错误,我不知道它是什么或为什么在那里。这是错误:
/tmp/ccKnig3z.o: In function `main':
line_formula_convert.c:(.text+0x113): undefined reference to `intcp_from_pt_slope'
collect2: error: ld returned 1 exit status
这是整个程序,如果它对你有任何帮助。
http://pastebin.com/9CNsaaF0
我正在使用Fedora 19和gcc -Wall来编译我的程序。任何解释此错误的帮助都表示赞赏,如果这是一个基本问题,我很抱歉。
答案 0 :(得分:4)
好的,现在我们正在谈论你发布代码的链接后。
void incp_from_pt_slope(double x1, double y1, double m, double *b) ;
|
void intcp_from_pt_slope(double x1, double y1, double m, double *b);
你看到了什么区别吗? incp_from_pt_slope
与incp_from_pt_slope
不同,这就是链接器抱怨未定义的引用错误的原因。
答案 1 :(得分:0)
#include
作为声明-l
选项链接到库答案 2 :(得分:0)
您的代码中调用了一个名为intcp_from_pt_slope
的函数,该函数未在任何位置定义。链接器发生错误。程序的每个模块都是单独编译的,您使用原型来声明可能存在于单独编译单元(.c文件)中的函数。然后,链接器获取所有目标文件并解析所有函数,以便每个函数都指向已经给出实现的内容。如果找不到函数的实现,则会收到报告的错误。这可能是因为您错过了链接器命令行中的对象,或者您只是错误地键入了该名称。
这可能是一个拼写错误,你需要在int和cp_from_pt_slope之间留一个空格。