使用静态文件编译C程序

问题描述 投票:-2回答:1

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

这是错误:

未定义引用`calculatearea'colle2.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

c g++
1个回答
0
投票

从上面的代码中我们可以看到你已经声明了函数int calculatearea(int a , int b);但没有为它编写任何定义。你正在主要调用这个功能。编译器没有找到函数calculatearea的定义并给出错误。

要解决这个问题:

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

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

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

gcc filename.c area.o 
© www.soinside.com 2019 - 2024. All rights reserved.