web-dev-qa-db-ja.com

「/ usr / bin / ld:ライブラリが見つかりません」

メイクファイルを使用してFORTRANコードをコンパイルしようとするのはこれが初めてです。 OSは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

メイクファイルの重要な要素は次のとおりです。

przm2_LIBS = -L ../libanne4.0/lib -lwdm -ladwdm -lutil

このエラーを修正するためにできることはありますか?他のコンパイラーを試すべきですか?

11
TH339

../libanne4.0/libは相対パスなので、絶対パスに変更してみてください。

また、リンカプロセスにライブラリへのアクセス権と読み取り権があるかどうかを確認できます。


更新:リンカにオプション-l<name>を使用して指定されたライブラリを検索させるには、ライブラリの名前をlib<name>.[a|so]にし、-Lのパラメータがライブラリのあるパスを指すようにします。

-Lは、-lオプションの前にある必要があります。

-l-Lを複数回指定できます。

10
alk

「adwdmlib.a」という名前に問題があります。リンクフラグ「-l adwdm」は、「adwdmlib.a」ではなく「libadwdm.a」という名前のlibファイルを期待するようコンパイラーに指示します。これは役に立ちましたか?ライブラリ名が「adwdmlib.a」の場合、おそらくリンカーがそれを見つけることができません。

1
bob.sacamento