неопределенная ссылка на `sqrt ' - PullRequest
2 голосов
/ 08 января 2012

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

Ответы [ 2 ]

5 голосов
/ 08 января 2012

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

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

gcc -c file.c

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

gcc -o program file.o -lm

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

gcc -o program file.c -lm
4 голосов
/ 08 января 2012

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

...