Неопределенная ссылка на `sqrt'

Часть моей программы заключается в расчете sqrt числа с плавающей запятой. Когда я пишу sqrt(1.0f); Я успешно компилирую программу, но когда я пишу sqrt(-1.0f);компиляция не удалась с undefined reference to 'sqrt' - Я полагаю, что в этом случае nan будет возвращено значение... Я скомпилирую программу gcc. Когда я компилирую его с Visual Studio, он успешно компилируется с отрицательным аргументом для sqrt. Как проблема может быть решена Спасибо

2 ответа

Решение

Вы должны добавить -lm флаг в большинстве систем на основе Unix, например:

Компиляция с использованием:

gcc -c file.c

а затем ссылку с помощью:

gcc -o program file.o -lm

Или, если вы не хотите разделять два этапа компиляции, просто напишите:

gcc -o program file.c -lm

Связать с -lm связать с библиотекой математики

Другие вопросы по тегам