What causes the error “undefined reference to (some function)”?
本问题已经有最佳答案,请猛点这里访问。
我得到错误:
1 2 3 | main.o(.text+0x1ed): In function `main': : undefined reference to `avergecolumns' collect2: ld returned 1 exit status |
我不太确定是什么导致了这个错误。其他海报解释说,没有找到函数或函数为空。如果有人能澄清或完善,将不胜感激!
这是我的函数代码(我正在尝试计算二维数组中列的平均值):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | #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: "); 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; } |
主要的相关部分有:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | #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); .... } |
另外,这是链接器还是编译错误(我不确定要添加哪个标记)。
这是一个链接器错误。
错误消息告诉您,您所链接的对象文件中没有包含