I get the error:

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

when I gcc *.o. I'm not quite sure what causes this error. Other posters have explained it as the function is not found or the function is empty. If someone could clarify or refine, it would be greatly appreciated!

Here is my function code (I'm trying to calculate the average of the column in 2D arrays):

#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;
    }

The relevant parts of main are:

#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);

    //....

}

Also, is this a linker or a compile error (I wasn't sure which tag to add).

Edit
Report