J'essaie de compiler un programme qui est un préprocesseur d'émission chimique.Erreur avec la version naine lors de la compilation du programme associé à netcdf
Ceci est le tutoriel officiel de son processus de compilation.
J'ai déjà télécharger le code source d'origine here. Avec la prédéfinition netcdf_dir
, le code source doit être correctement compilé.
Mais quand j'utilise ./make_util megan_bio_emiss
, l'erreur apparaît montrant comme:
=========================================================================
Using gfortran fortran compiler
=============================================================================
=============================================================================
netcdf top level directory = /disk2/hyf/lib/netcdf
=============================================================================
gfortran -g -ffree-line-length-none -c -I/disk2/hyf/lib/netcdf/include misc_definitions_module.f90
gfortran -g -ffree-line-length-none -c -I/disk2/hyf/lib/netcdf/include constants_module.f90
gfortran -g -ffree-line-length-none -c -I/disk2/hyf/lib/netcdf/include bio_types.f90
......
......
......
gfortran -o megan_bio_emiss misc_definitions_module.o constants_module.o bio_types.o area_mapper.o bio_emiss.o -L/disk2/hyf/lib/netcdf/lib -lnetcdf -lnetcdff
/usr/bin/ld: Dwarf Error: found dwarf version '4', this reader only handles version 2 information.
/disk2/hyf/lib/netcdf/lib/libnetcdff.a(fort-attio.o): In function `nf_put_att_text_':
fort-attio.c:(.text+0x11c): undefined reference to `nc_put_att_text'
......
Il semble que le code source quelque chose (nain?) Est uncompatiable avec mon système.
usr/bin/ld: Dwarf Error: found dwarf version '4', this reader only handles version 2 information.
Par ailleurs, le système d'exploitation que je utilise est CentOS 5.0 & J'ai installé netCDF-4.1.3 (La dernière version C & code binaire Fortran sont combinés) avec GCC-4.9.2
Y at-il quelque chose que je peux changer dans le Makefile du megan_bio_emiss compiler avec succès?
Tout conseil sera apprécié!
-------------------------------- 2016-9-10 AJOUTER -------- ------------------------
J'ajoute le -gdwarf-2
à la ligne spécifique de Makefile.
La compilation n'a toujours pas fonctionné.
Merci pour votre réponse! J'ai essayé d'ajouter le swith '-gdwarf-2' pour compiler, mais le problème ne semble pas résolu. Comment mettre à jour vers une version récente de l'éditeur de liens? –
Etes-vous sûr d'avoir recompilé tous les objets? Si c'est le cas, vous pouvez essayer d'ajouter -gdwarf-2 à la ligne de lien, même si je ne suis pas sûr que cela soit nécessaire. – janneb
Désolé de vous répondre plus tard. Où est la ligne de liaison? Je ne suis pas très familier avec la compilation. Maintenant, avec l'addition de '-gdwarf2', il compile chaque fichier __. F90__ comme _gfortran -g -ffree-line-length-none -gdwarf-2 -c -I/disk2/hyf/lib/netcdf/include misc_definitions_module.f90_ . –