"/ usr/bin/ld:找不到库"

TH3*_*339 11 linker gcc fortran ld gfortran

这是我第一次尝试使用makefile编译FORTRAN代码.操作系统是Ubuntu 12.04 LTS 64位.我遇到了以下错误:

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
Run Code Online (Sandbox Code Playgroud)

makefile中的关键元素是:

przm2_LIBS = -L ../libanne4.0/lib -lwdm -ladwdm -lutil
Run Code Online (Sandbox Code Playgroud)

我有什么办法可以解决这个错误吗?我应该尝试其他编译器吗?

alk*_*alk 10

作为../libanne4.0/lib相对路径,您可以尝试将其更改为绝对路径.

您还可以检查链接器进程是否有权访问和读取库.


更新:要让链接器找到使用选项指定的库-l<name>,libray的名称应该是,lib<name>.[a|so]并且-L应该指向库所在路径的参数.

-L需要先于它的-l选项.

可以指定-l和/或-L多次.