LINUX.ORG.RU

Problem with PlPlot scientific plotting library


0

0



Здравствуйте!

Кто-нибудь юзает PlPlot для построения графиков?
У меня проблема следующая: попытка скомпилировать С-шную прогу
(даже пустую, типа main(){} ) с библиотекой libplplotdX, дает

~$ gcc -o empty -lplplotdX -L/usr/X11R6/lib -lX11 -ldl -lm empty.c
/usr/lib/libplplotdX.so: undefined reference to `s_cmp'
/usr/lib/libplplotdX.so: undefined reference to `s_copy'
collect2: ld returned 1 exit status

однако:
~$ ldd /usr/lib/libplplotdX.so.4.99.0
libc.so.6 => /lib/libc.so.6 (0x40122000)
libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x40200000)
libdl.so.2 => /lib/libdl.so.2 (0x402a1000)
libm.so.6 => /lib/libm.so.6 (0x402a5000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000)

И, самое интересное, если gcc заменить на g77 (и программу на
аналогичную фортрановскую, пустую, например), то все работает!

Что же делать? Где тут может быть ошибка?!

(на всякий случай, у меня Debiam 2.2 potato)
Спасибо!


поищи либу которая содержит эти функции с помощью strings libname.so | grep s_copy и добавь -lэта_либа... не забудь нам сказать результаты %)

anonymous
()

Спасибо!
`string' грит, что эти символы в этой самой либе и есть :(

Но - все скомпоновалось при добавлении опций `-u'

gcc -u s_cmp -u s_copy -lplplotdX .....

В man gcc про `-u':

gcc, g++ - GNU project C and C++ Compiler (gcc-2.95)
....

-u symbol
Pretend the symbol symbol is undefined, to force
linking of library modules to define it. You can
use `-u' multiple times with different symbols to
force loading of additional library modules.

Английский вроде знаю, но во всей этой "кухне" компоновки не силен,
ld manual читал, но все равно несколько туманно представляю, что это
за "символы".
Не подскажете, где про это можно прочесть? Любопытно просто! :)

Спасибо!

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

А еще.... еще все получилось так: объектники получил через gcc, а слинковал через g77 (и через fort77 - скрипт, вызывающий f2c - тоже все получилось), и все пучком!

Кто знает, что такое может означать?!

Спасибо.

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

> Кто знает, что такое может означать?!
можно поподробнее, про "такое"? :)

btw, попробуй -lplplotdX в конце списка библиотек, то-есть вместо
gcc -o empty -lplplotdX -L/usr/X11R6/lib -lX11 -ldl -lm empty.c
сделай
gcc -o empty empty.c -L/usr/X11R6/lib -lX11 -ldl -lm -lplplotdX
ждемс результатов :)

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