Функция sqrt () не работает с переменными аргументами [duplicate]

9
задан Eddy 20 August 2010 в 18:05
поделиться

4 ответа

Вам необходимо установить связь с математической библиотекой (используйте '-lm' в командной строке). В случае констант компилятор, вероятно, умен и предварительно вычисляет sqrt (2.0) (так что код, который скомпилирован, по сути, 'b = 1.414 ...;')

18
ответ дан 4 December 2019 в 08:00
поделиться

Компилировать с помощью:

gcc -Wall -o test2 test2.c -lm

Вам необходимо выполнить компоновку с математической библиотекой.

1
ответ дан 4 December 2019 в 08:00
поделиться

Используйте команду gcc -Wall -o "test2" "test2.c" -lm, которая, вероятно, исправит это.

Это включает математическую библиотеку в дополнение к стандартной библиотеке времени выполнения C. В большинстве систем математическая библиотека исторически является отдельной сущностью, которую нужно явно запрашивать.

2
ответ дан 4 December 2019 в 08:00
поделиться

Возможно, вам потребуется добавить -lm при компиляции. Когда вы извлекаете квадратный корень из константы, компилятор оптимизирует код, извлекая квадратный корень во время компиляции, поэтому он вообще не использует sqrt .

2
ответ дан 4 December 2019 в 08:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: