Linux за българи: Форуми

Програмиране => Общ форум => Темата е започната от: Stash в Nov 21, 2007, 22:39



Титла: Проблем със math.h и log()
Публикувано от: Stash в Nov 21, 2007, 22:39
Здравейте, или аз съм тъп или това нещо не е в ред
опитвам се да компилирам нещо супер просто :
Примерен код

#include <stdio.h>
#include <math.h>

int main ()
{
  double param, result;
  param = 5.5;
  result = log (param);
  printf ("ln(%lf) = %lf\n", param, result );
return 0;
}


и gcc ми връща
Примерен код



t$ gcc -o log log.c
/tmp/ccamV4m2.o: In function `main':
log.c:(.text+0x21): undefined reference to `log'
collect2: ld returned 1 exit status


има ли някой идея какъв му е проблема същото дава и кога се оптвам примерно да ползвам pow()
помощ :)


Титла: Проблем със math.h и log()
Публикувано от: Stash в Nov 21, 2007, 22:47
не питай , патило , питай питало :)

прочетох тук таме и открих, че трябвало да се компилира с -lm опция в края на реда , и все пак някакви идеи защо се налага това?


Титла: Проблем със math.h и log()
Публикувано от: tarator в Nov 21, 2007, 22:56
Защото математическите функции са реализирани в отделна от libc библиотека, наречена libm. Не съм любопитствал защо е отделна, вероятно по исторически причини.


Титла: Проблем със math.h и log()
Публикувано от: simoPC в Dec 04, 2007, 07:24
Погледни във функцията "main()".В скобите трябва да напишеш "void",защото няма параметри. :ok: