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