gpt4 book ai didi

c - 是什么原因导致错误 "undefined reference to (some function)"?

转载 作者:行者123 更新时间:2023-11-30 17:19:15 29 4
gpt4 key购买 nike

我收到错误:

main.o(.text+0x1ed): In function `main':
: undefined reference to `avergecolumns'
collect2: ld returned 1 exit status

当我 gcc *.o.我不太确定是什么导致了这个错误。其他发帖者将其解释为找不到该函数或该函数为空。如果有人能够澄清或完善,我们将不胜感激!

这是我的函数的代码(我正在尝试计算二维数组中列的平均值):

#include "my.h"

void averagecolumns (int x, int y, int** a)
{
int i;
int j;
float sum;
float colAvg;

sum = 0;
colAvg = 0;

printf("i. The column averages are: \n");
for(i = 0; i < x; i++)
{
for(j = 0; j < y; j++)
{
sum += a[i][j];
colAvg = sum / (float)x;
}
printf("Column: %3d, Average: %6.2f", j, colAvg);
sum = 0;
colAvg = 0;
}

main 的相关部分是:

#include "my.h"

int main (int argc, char* argv[])
{
int** a;
float** colAvg;
int ROWS;
int COLS;
int i;
int j;
int** table;
FILE* fpmyfile;
int closeResult;

....

printme (ROWS, COLS, a); // call functions a - j
oddvalues (ROWS, COLS, a);
oddlocations (ROWS, COLS, a);
countoddrows (ROWS, COLS, a);
addrows (ROWS, COLS, a);
findfirstsmall (ROWS, COLS, a);
findlastlarge (ROWS,COLS, a);
addcolumns (ROWS, COLS, a);
avergecolumns (ROWS, COLS, a);

....

}

此外,这是链接器还是编译错误(我不确定要添加哪个标签)。

最佳答案

这是一个链接器错误。 ld 是链接器,因此如果您收到以“ld returned 1 exit status”结尾的错误消息,则表明这是链接器错误。

错误消息告诉您,您链接的目标文件都不包含 avergecolumns 的定义。原因是您定义的函数称为 averagecolumns (换句话说:您在调用函数时拼错了函数名称(大概也在头文件中 - 否则您会在编译时出现了不同的错误))。

关于c - 是什么原因导致错误 "undefined reference to (some function)"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28924222/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com