Đây là lần đầu tiên tôi cố gắng biên dịch mã FORTRAN bằng cách sử dụng một makefile. Hệ điều hành là Ubuntu 12.04 LTS 64 bit. Tôi gặp phải các lỗi sau đây:"/ usr/bin/ld: không thể tìm thấy thư viện"
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
Yếu tố then chốt trong makefile là:
przm2_LIBS = -L ../libanne4.0/lib -lwdm -ladwdm -lutil
Có bất cứ điều gì tôi có thể làm gì để khắc phục lỗi này? Tôi có nên thử các trình biên dịch khác không?
Điều đầu tiên tôi sẽ kiểm tra là nếu bạn thực sự có 'libwdm.so' và' libadwdm.so'. Tôi cho rằng họ nên ở trong thư mục 'libanne4.0/lib' này. – birryree
Có, 'libwdm.a' và' libadwdm.a' có ở đó. –
Ồ, thư viện tĩnh. Bạn có thể thử điều này trong makefile của bạn? 'przm2_LIBS = -L ../ libanne4.0/lib -Wl, -Bdynamic -lutil -Wl, -Bstatic -lwdm -ladwdm' - Tôi giả sử' util' là 'libutil.so' (thư viện được chia sẻ) vì nó đã không không phàn nàn về điều đó. – birryree