2016-09-13 9 views
0

Надеюсь, кто-то может мне помочь. Я работаю через CS50x и работаю над Pset1 - жадным. Я получаю следующую ошибку при компиляции кода:Функция C-раунда бросает ошибку: «неопределенная ссылка на« round »...»

/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) 

Любая помощь будет принята с благодарностью. Прошу прощения, если вопрос нечеткий, я пытался быть в глубине. Я использовал человек круглый в терминале и искал везде, пытаясь найти разные решения, но ничего не сработало.

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

Я использую эту команду, чтобы скомпилировать мой код:

clang -o greedy greedy.c -lcs50 
+3

Я думаю, вы пропустили ссылку на математическую библиотеку (добавьте '-lm' в опции компоновщика, в конце) – purplepsycho

+1

Свяжите математическую библиотеку. В GCC '-lm'. – s7amuser

+3

Подсказка: это не ошибка компиляции, а ошибка связи. Можете ли вы вставить команду, которую вы используете для компиляции/ссылки на код? – mroman

ответ

1

Следующая должен работать при компиляции:

clang -o greedy greedy.c -lcs50 -lm 

Это связывает математическую библиотеку для компилятора.