Софтуерно Инженерство
Loading...
+ Нов въпрос
denis_a321 avatar denis_a321 13 Точки

Въпрос относно math.h в Linux среда

Здравейте! Някой има ли си на идея дали всичко от хедърния файл math.h работи в Linux, по-точно функцията pow() не се разпознава(дава грашка) от компилатора gcc. sqrt пък работи. Дистрибуцията е Debian 8.

Тагове:
0
C Programming
fristgerb avatar fristgerb 50 Точки
Best Answer

Когато ползваш <math.h> винаги трябва да добавяш флага "-lm" (LM) към gcc компандата (по точно когато правиш линкване, но това са подробности). pow() се поддържа със сигурност. sqrt() вероятно ти работи понеже се оптимизира и премахва при компилацията.

0
24/04/2017 23:37:35
bsdemon avatar bsdemon 348 Точки

Каква грешка ти дава? Бъди малко по-конкретен.
Ако ще гадаем, сложи опция -lm и пробвай дали ще се компилира.

0
denis_a321 avatar denis_a321 13 Точки

Ами да, след добавянето на -lm се компилира успешно! 10х, колеги!

При компилация без "-lm" грешката гласеше:

gcc test12.c
/tmp/ccqACKke.o: In function `main':
test12.c:(.text+0x77): undefined reference to `pow'
test12.c:(.text+0xcf): undefined reference to `pow'
collect2: error: ld returned 1 exit status

 

0
07/05/2017 16:51:15