Reputation: 303
#include <cs50.h>
#include <stdio.h>
bool maths (int a, int b, int c)
{
int first = a + b;
int second = b + c;
int third = c + a;
if (first <= c)
{
return false;
}
else if (second <= a)
{
return false;
}
else if (third <= b)
{
return false;
}
else
{
return true;
}
}
I get the error message undefined reference to `main'
when I try to compile. I have tried to look up this error message, but the stuff I find is over my head. Can anyone explain to a novice like me what I have done wrong?
$ clang -ggdb3 -O0 -std=c11 -Wall -Werror -Wextra -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wshadow triangle.c -lcrypt -lcs50 -lm -o triangle
/usr/bin/ld: /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crt1.o: in function `_start':
(.text+0x24): undefined reference to `main'
clang-10: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [<builtin>: triangle] Error 1
Upvotes: 1
Views: 1621
Reputation: 2812
It seems that a main
function is missing in your program.
#include <cs50.h>
#include <stdio.h>
bool maths (int a, int b, int c)
{
int first = a + b;
int second = b + c;
int third = c + a;
if (first <= c)
{
return false;
}
else if (second <= a)
{
return false;
}
else if (third <= b)
{
return false;
}
else
{
return true;
}
}
int main ()
{
maths(1,2,3);
return 0;
}
Upvotes: 4