[Shape-univ] circles-0.1.62

Boud Roukema boud w astro.uni.torun.pl
Wto, 30 Sty 2007, 17:48:16 CET


Cześć Zbyszek,

On Fri, 19 Jan 2007, ZBIGNIEW BULIŃSKI wrote:

> Wiam!
>
> plkik pxalloc.c działa teraz poprawnie lecz niestety są nowe błędy w
> rdWMAP_.f oraz rdCOBE.f w których jest niezdefiniowane odołanie do funcji:
> ftopen_
> ftmahd_
> ftgtbb_
> ftclos_
> W załączniku wysyłam raport

ANALIZA:

Brakujący funkcji są w bibliotece cfitsio, tzn plik libcfitsio.a jeśli jest
wersja staticzna (też istnieje wersja "shared" - podzielona).

W zasadzie, ,,-lcfitsio"  w komendzie kompilacja, że cytowałeś, jest interpretowany
automatyczny jako ,,libcfitsio.a" i jest szukany w niektórych katalogach 
standardowych i w katalogach np 
/usr/lib/gcc/i586-mandriva-linux-gnu/4.1.1
/usr/lib/gcc/i586-mandriva-linux-gnu/4.1.1/../../..   (tz. /usr/lib)

Tu jest twój komend:

f95  -g -O2 -Lcosmdist/lib -Lisolat/lib -Lastromisc/lib -o circles  circles.o xmalloc.o circles_f77.o lib/libcircles.a -lcosmdist -lisolat -lastromisc  -L/usr/local/pgplot -lpgplot -lpng -L/usr/X11R6/lib -lX11 -lm  -llapack -lblas -L/usr/lib/gcc/i586-mandriva-linux-gnu/4.1.1 -L/usr/lib/gcc/i586-mandriva-linux-gnu/4.1.1/../../.. -lgfortranbegin -lgfortran -lm -lgcc_s   -L/usr/lib/gcc/i586-mandriva-linux-gnu/4.1.1 -L/usr/lib/gcc/i586-mandriva-linux-gnu/4.1.1/../../.. -lgfortranbegin -lgfortran -lm -lgcc_s -lcfitsio -lgsl -lgslcblas -lm -lgcc -lX11 -lm


Wydaje mi się, że albo twoja instalacja mandriva jest trochę nie-standardowy,
albo skrypt configure nie dobrze dodawał całych katalogów  -L/tu/katalog  w 
komendzie kompilacji.

Czy mogłbyś zrobić:

./configure --prefix=$HOME > /tmp/log 2>&1

i nas wysyłać /tmp/log ?  (Jeśli ktoś nie lubi to czytać na
shape-univ, niech go wyjaśnić gdzie jest błęd lub to poprawić :P.
Albo się wypisywać z listy lub zmienić jego paramety w liście. Na
http://cosmo.torun.pl/mailman/listinfo/shape-univ  możesz prosić robot mailman
o wysyłaniu Ci twój hasło.)


EWENTUALNE ROZWIĄZANIA:

W mandrivie, szukaj pakiet typu  cfitsio-dev  lub  cfitsio3-dev   lub 
libcfitsio-dev  lub  libcfitsio3-dev   lub coś 
podobny i to instalować - w debian to jest dodatkowy pakiet dla osoby, chęcie do
użycie pakiet jako biblioteką.

Wtedy ./configure  && make && make install


BIBLIOTEKI OD ŹRÓDŁA:

1. Kompilować cfitsio od źródła, tworzą bibliotekę staticzną:   libcfitsio.a

albo 2a+3a:

2a. Umieszczyć go np $HOME/mylib/    jako zwykly użytkownik.
3a. LDFLAGS=$HOME/mylib/ ./configure --prefix=$HOME

albo 2b+3b:

2b. Umieszczyć go w  /usr/local/lib/   jako root
3b. ./configure --prefix=$HOME


Idealnie, 2a + 3a powinna działać tzn bez prawa root'a.  W debian unstable, 
działa.


BUG: ANNOYING: W piernix-0.0.4, 2a+3a nie działał dla mnie - configure nie mogł 
znaleźć kompilator gcc ! Może  bo zależy od pusty wartości LDFLAGS aby
sam dodawać ,,standardowy katalogów" do LDFLAGS.


Więc jeśli nie możesz to zrobić jako użytkownik, spróbuj 2b jako rootem i 3b 
jako użytkownikiem.

To testowałem także dla liblapack.a w piernix-0.0.4 i działa.


pozdr
boud


Więcej informacji o liście Shape-univ