2012-01-08 4 views
2

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

+0

НКУ myprog.c -o MyProg -lm -l в включить библиотеку м для математической библиотеки -lm , –

ответ

5

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

Compile с использованием :

gcc -c file.c 

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

gcc -o program file.o -lm 

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

gcc -o program file.c -lm 
4

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

+0

Не могли бы вы объяснить причину этого. Я попытался включить в заголовки, но затем столкнулся с ошибкой, как упоминалось в вопросе. –

Смежные вопросы