Помощь - Поиск - Пользователи - Календарь
Полная версия: использования sqrt
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Ада и другие языки
compiler
Добрый день!
Вот вернулся к изучению Си, да возникают проблемы( Почему не компилируется программа?
#include <stdio.h>
#include <math.h>
int main(void){
int i = 169, j = 168;
printf(
"sqrt(%d)=%d, sqrt(%d)=%d",
i, (int)sqrt((double)i),
j, (int)sqrt((double)j)
);
return 0;
}

лог:
Код
compiler@hope:~/helloworld$ gcc a.c
/tmp/ccEdG7FC.o: In function `main':
a.c:(.text+0x41): undefined reference to `sqrt'
a.c:(.text+0x6b): undefined reference to `sqrt'
collect2: выполнение ld завершилось с кодом возврата 1

компилятор: gcc (GCC) 4.1.3 20070929 (prerelease) (Ubuntu 4.1.2-16ubuntu2)

заранее благодарен.
volvo
Цитата
Почему не компилируется программа?
Потому что библиотека math не прилинкована...

Добавь -lm к команде компиляции...
compiler
Цитата(volvo @ 11.05.2008 15:30) *
Добавь -lm к команде компиляции...
да спасибо, помогло...
Цитата(volvo @ 11.05.2008 15:30) *
Потому что библиотека math не прилинкована...
мда.. надо будет возвращаться к использованию какой-нибудь IDE..
зы
хотя интересно, выражение printf("%d\n",sqrt(9.0)); компилируется без подключения math, правда с предупреждением...
и printf("%d\n",M_PI); без прилинковки откомпилируется без предупреждений..
правда, все они будут работать не корректно.. но будут..
где можно прочитать про эти "феномены" подробней?
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.