"/ Usr / bin / ld: impossible de trouver la bibliothèque"
C'est ma première fois d'essayer de compiler code FORTRAN à l'aide d'un makefile. L'OS est Ubuntu 12.04 LTS 64 bits. J'ai rencontré les erreurs suivantes:
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
L'élément clé dans le makefile est:
przm2_LIBS = -L ../libanne4.0/lib -lwdm -ladwdm -lutil
Est-ce que je peux faire pour corriger cette erreur? Devrais-je essayer d'autres compilateurs?
source d'informationauteur TH339
Vous devez vous connecter pour publier un commentaire.
Comme
../libanne4.0/lib
est un chemin relatif, vous pouvez essayer de le changer en un absolu.Aussi, vous pouvez vérifier si le processus de l'éditeur de liens a les droits d'accès et de lire les libs.
Mise à jour: Pour avoir l'éditeur de liens trouver une bibliothèque spécifié à l'aide de l'option
-l<name>
le nom de la bibliothèque doit êtrelib<name>.[a|so]
et le paramètre de-L
devrait pointer le chemin étaient la bibliothèque est située.-L
doit précéder c'est-l
option(s).On pourrait spécifier
-l
et/ou-L
plusieurs fois.Il ya quelque chose de mal avec le nom "adwdmlib.". Un lien de drapeau "-l adwdm" va dire au compilateur de s'attendre à un fichier lib avec le nom "libadwdm.une", pas de "adwdmlib.". Est-ce utile ou pertinente? Si le nom de votre bibliothèque est "adwdmlib.une", c'est probablement la raison pour laquelle votre linker ne peut pas le trouver.