2016-09-08 1 views
0

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.


enter image description here


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. enter image description here

La compilation n'a toujours pas fonctionné.

enter image description here

Répondre

2

Le problème est que gcc 4.9 génère nain-4 par défaut, mais vous n'avez pas mis à jour une version récente de l'éditeur de liens qui comprend également nain-4.

Une solution de contournement simple est l'option du compilateur -gdwarf-2.

+0

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? –

+1

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

+0

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_ . –