LINUX.ORG.RU

math.h


0

0

Вразумите ламера, плз... нужно мне попользовать функции из сабжа.. пишу

#include <math.h>

void main(void) { double t=pow(2,2); }

Пытаюсь скомпильнуть, меня посылают: $ gcc t.c

/tmp/cc4WyLFr.o: In function `main': /tmp/cc4WyLFr.o(.text+0x15): undefined reference to `pow' collect2: ld returned 1 exit status

где грабли? дистриб RedHat 7.1 в /lib валяется libc-2.2.2.so предположил, что нужно скомпоновать динамически, сказал $ gcc t.c -shared $./a.out Segmentation fault (core dumped)

чего я не понял?


Ты не понял, что компилятор надо попросить прилинковать математическую библиотеку:

$gcc -o test test.c -lm

Ключик -lm видишь, да?

anonymous
()
Ответ на: комментарий от anonymous

точно. сейчас все нормально прошло... математическая библиотека это libm-2.2.2.so? и как узнать, какие функции в какой библиотеке лежат?

csa
() автор топика

Математическая библиотека -- это, как ни странно, libm.so. А вообще советую почитать program library howto (ищется на linuxdoc.org), так как этот славный документ сильно просветляет читающего на предмет того, как в *nix'ах работает механизм разделяемых библиотек.

anonymous
()

> как узнать, какие функции в какой библиотеке лежат?

С помощью команды man. Допустим, ты не знаешь, где находится функция atan:

$man atan

[skipped] SYNOPSIS #include <math.h>

[skipped]

Вот так.

anonymous
()
Ответ на: комментарий от anonymous

>$man atan

ну это и ежу понятно... я хочу узнать как определить к какой либе относятся функции из данного хедера..

csa
() автор топика
Ответ на: комментарий от anonymous

а можно где-либо этот документ найти переведенным на великий и могучий?.. мое знание английского порождает множество неоднозначностей при использовании.. :(

csa
() автор топика
Ответ на: комментарий от master

боюсь, толку мало будет :(((((

csa
() автор топика

Try to use 'nm' if you want examine library.
----- cut -----
NAME
nm - list symbols from object files
----- cut -----

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.