Can't get my head around them!
I have myfunctions.h:
Code:
#ifndef MYFUNCTIONS_H
#define MYFUNCTIONS_H
extern int triangularnumber (int number);
#endif
myfunctions.c:
Code:
#include <stdio.h>
int triangularnumber ( int number )
{
int result, i, number_adj;
result = number;
for (i = 1; i < number; i++)
{
number_adj = number - i;
result = result + number_adj;
}
return result;
}
And a program disjointsubset.c:
Which is quite big but has this line:
Code:
if(number_equal >= triangularnumber (no_of_rows_count - 1))
{
//code
}
My makefile is called Makefile:
Code:
CFLAGS=-g
default: disjointsubset
myfunctions.o: myfunctions.c myfunctions.h
disjointsubset.o: disjointsubset.c myfunctions.h
main: disjointsubset.o myfunctions.o
gcc -g -o disjointsubset disjointsubset.o myfunctions.o
clean:
rm -f *.o disjointsubset
backup:
tar cf backup.tar disjointsubset.c myfunctions.h myfunctions.c Makefile
And my error:
(From terminal)
Code:
:>make
cc disjointsubset.o -o disjointsubset
disjointsubset.o(.text+0x9ed): In function `main':
/home/shill/cprogramming/disjointsubset.c:184: undefined reference to `triangularnumber'
collect2: ld returned 1 exit status
make: *** [disjointsubset] Error 1
Not sure what i'm doing wrong as this is about as simple as i can get it!
Can you spot anything i'm doing wrong?
It all worked when the function was declared inside disjointsubset.c!
Thanks