Phrike Phrike - 2 months ago 25
C Question

C round function is throwing error: "undefined reference to `round'..."

I hope someone can help me. I am working through CS50x and am working on Pset1 - greedy. I am getting the following error whenever I compile my code:

/tmp/greedy-46be96.o: In function `main':
greedy.c:(.text+0x95): undefined reference to `round'
clang: error: linker command failed with exit code 1 (use -v to see invocation)


Any help will be greatly appreciated. I apologise if the question is vague, I have tried to be in depth. I have used man round in the terminal, and have searched everywhere, trying different solutions, but nothing has worked.

#include <stdio.h>
#include <cs50.h>
#include <math.h>

int main(void)
{
float owed;
float change;
float quarter = 0.25;
float dime = 0.10;
float nickel = 0.05;
float penny = 0.01;

do {
printf("How much change is owed?: ");
owed = GetFloat();

} while(owed <= 0);

change = round(owed * 100);
}


I am using this command to compile my code:

clang -o greedy greedy.c -lcs50

Answer

The following should work when you compile:

clang -o greedy greedy.c -lcs50 -lm

This links the math library for the compiler.

Comments