To jest moja pierwsza próba skompilowania kodu FORTRAN za pomocą pliku makefile. System operacyjny to Ubuntu 12.04 LTS 64 bit. Natknąłem się następujące błędy:"/ usr/bin/ld: nie można znaleźć biblioteki"
gfortran -o przm3123.exe canopy.o chem.o cnfuns.o cropdate.o datemod.o debug.o debug_cn.o f2kcli.o floatcmp.o furrow.o general.o i_errchk.o infnan.o inivar.o ioluns.o iosubs.o lambertw.o m_readvars.o utils.o wind.o fcscnc.o przm3.o rsexec.o rsinp1.o rsinp2.o rsinp3.o rsmcar.o rsmisc.o rsprz1.o rsprz2.o rsprz3.o rsprzn.o rsutil.o rsvado.o -L ../libanne4.0/lib -lwdm -ladwdm -lutil
/usr/bin/ld: cannot find -lwdm
/usr/bin/ld: cannot find -ladwdm
collect2: ld returned 1 exit status
make: *** [przm3123.exe] Error 1
Kluczowym elementem w makefile brzmi:
przm2_LIBS = -L ../libanne4.0/lib -lwdm -ladwdm -lutil
Czy mogę coś zrobić, aby naprawić ten błąd? Czy powinienem spróbować innych kompilatorów?
Pierwszą rzeczą, którą chciałbym sprawdzić jest to, czy faktycznie masz 'libwdm.so' i' libadwdm.so'. Zakładam, że powinny znajdować się w tym katalogu 'libanne4.0/lib'. – birryree
Tak, są tam 'libwdm.a' i' libadwdm.a'. –
Och, biblioteki statyczne. Czy możesz spróbować tego w swojej makefile? 'przm2_LIBS = -L ../ libanne4.0/lib -Wl, -Bdynamic -lutil -Wl, -Bstatic -lwdm -ladwdm' - Zakładam, że' util' to 'libutil.so' (biblioteka współdzielona), ponieważ nie narzekać na to. – birryree