Я хочу сделать простую функцию, включающую sqrt()
, floor()
и pow()
. Итак, я включил <math.h>
. Когда я пытаюсь использовать свою функцию, моя программа говорит, что sqrt()
и floor()
не существуют. Я трижды проверил свои файлы и переписал их, но все равно выдает ту же ошибку. Просто чтобы проверить, было ли что-то не так с каталогом <math.h>
, я сделал еще один отдельный файл, который рассчитал то же самое, и это сработало. Я сейчас не в курсе. Что я делаю не так?
Код неработающей программы:
#include <math.h>
#include "sumofsquares.h"
int sumofsquares(int x){
int counter = 0;
int temp = x;
while(temp != 0){
temp = temp - (int)pow(floor(sqrt(temp)), 2);
counter ++;
}
return counter;
}
Рабочий тестовый файл:
#include <stdio.h>
#include <math.h>
int main(void){
printf("%d", (int)pow(floor(sqrt(3)), 2));
}
ошибка такая
/ tmp / ccm0CMTL.o: в функции sumofsquares ':
/home/cs136/cs136Assignments/a04/sumofsquares.c:9: неопределенная ссылка
в sqrt '/home/cs136/cs136Assignments/a04/sumofsquares.c:9: не определено
ссылка на пол 'collect2: ld вернул 1 статус выхода`
Я использую runC на виртуальной ОС Ubuntu для компиляции