我收到错误:
main.o(.text+0x1ed): In function `main':
: undefined reference to `avergecolumns'
collect2: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)
当我gcc*.o.我不太清楚导致这个错误的原因.其他海报已经解释了它没有找到功能或功能是空的.如果有人可以澄清或改进,那将非常感谢!
这是我的函数代码(我试图计算2D数组中列的平均值):
#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;
}
Run Code Online (Sandbox Code Playgroud)
主要的相关部分是:
#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);
....
}
Run Code Online (Sandbox Code Playgroud)
此外,这是一个链接器或编译错误(我不确定要添加哪个标记).
sep*_*p2k 25
这是一个链接器错误.ld是链接器,因此如果您收到以"ld返回1退出状态"结尾的错误消息,则会告诉您它是链接器错误.
该错误消息告诉您,您链接的所有目标文件都不包含其定义avergecolumns.原因是调用了你定义的函数averagecolumns(换句话说:你在调用函数时拼错了函数名称(也可能是在头文件中) - 否则你在编译时遇到了不同的错误)).