I am starting work on a little passion project with the hopes of having a high tech pokemon dnd campaign in the future (no idea when, just kind of working it out). I haven't programmed in a long time and this is giving me a bug I can't quite comprehend for some reason. So, here's my current code.

main.cpp ->

#include <stdio.h>
#include <math.h>
#include "calculations.c"

int main()
{
int speedAtt = 45;
int speedDef = 63;
int accuracy = 100;
int roll = findroll(speedAtt, speedDef, accuracy);
printf("Attacker needs to roll a %d\n", roll);

return 0;
}

calculations.c ->

#include <stdio.h>

#include <math.h>

#include "calculations.h"

int findroll (int speedA, int speedD, int acc)

{

int roll;

float hitperc = ((speedA / speedD) * acc) / 100;

if (hitperc >= 1)

roll = 2;

else

roll = round (20 - (hitperc * 20));

return roll;

}

int dodamage (int attk, int def, int power, int atroll)

{

return 0;

}

calculations.h ->

#ifndef CALCULATIONS_H_
#define CALCULATIONS_H_

int findroll (int, int, int);
int dodamage (int, int, int, int);

#endif

Then I get this series of errors:

```/usr/bin/ld: /tmp/cc3PaZfu.o: in function `std::round(float)':
/home/calculations.c:7: multiple definition of `findroll(int, int, int)'; /tmp/ccFhCWEu.o:/home/calculations.c:7: first defined here
/usr/bin/ld: /tmp/cc3PaZfu.o: in function `dodamage(int, int, int, int)':
/home/calculations.c:19: multiple definition of `dodamage(int, int, int, int)'; /tmp/ccFhCWEu.o:/home/calculations.c:19: first defined here
collect2: error: ld returned 1 exit status```
`I can't find where the multiple definitions are and it is driving me up a wall. The calculations worked fine before I put it in it's own page.`

`#include "calculations.c"`
`#include "calculations.h"`