用静态文件编译C程序

时间:2019-02-12 23:38:55

标签: c g++

我正在尝试使用静态库编译c程序,但该程序无法正常工作。

这是错误:

  

对calculatearea的未定义引用   collect2.exe:错误:ld返回1退出状态。

静态文件是使用gcc / g ++编译器创建的。

这是主要代码:

#include <stdio.h>
#include <stdint.h>

int calculatearea(int a , int b);
int main()
{


int c = calculatearea(2,4);

printf("%d",c);
getchar();
return 0;
}

编辑: :screenshot of compiler error

1 个答案:

答案 0 :(得分:0)

从上面的代码中我们可以看到您已经声明了函数int calculatearea(int a , int b);,但尚未为其编写任何定义。并且您正在主要调用此函数。编译器找不到函数calculatearea的定义并给出错误。

要解决此问题:

1)在同一文件中编写函数calculatearea的定义。

2)在此函数声明中使用extern说明符,并确保在编译时链接库中包含该定义。

3)如图所示,如果area.o具有函数calculatearea的定义,则按如下所示进行编译,这将在linux中生成a.out:

gcc filename.c area.o