Неопределенная ссылка на `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