2016-09-08 7 views
0

Я пытаюсь скомпилировать программу, которая является препроцессором для химической эмиссии.Ошибка с карликовой версией при компиляции программы, связанной с netcdf

Это официальное руководство по его процессу компиляции.


enter image description here


Я уже загрузить исходный код here.

С предопределением netcdf_dir исходный код должен быть скомпилирован.

Но когда я использую ./make_util megan_bio_emiss, ошибка появляется, показывая, как:

========================================================================= 
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' 
...... 

Кажется, что что-то (карлик?) На исходном коде uncompatiable с моей системой.

usr/bin/ld: Dwarf Error: found dwarf version '4', this reader only handles version 2 information.

Кстати, операционная система я использую CentOS 5.0 & Я установил NetCDF-4.1.3 (последняя версия, что С & Fortran двоичного кода объединяются) с GCC-4.9.2

Есть ли что-то, что я могу изменить в Makefile из megan_bio_emiss, чтобы успешно скомпилировать?

Любой совет будет оценен!

-------------------------------- 2016-9-10 ADD -------- ------------------------

Я добавляю swits к -gdwarf-2 в определенную строку Makefile. enter image description here

Компиляция все еще ошибается.

enter image description here

ответ

2

Проблема заключается в том, что GCC 4.9 генерирует карлик-4 по умолчанию, но вы не обновлены до последней версии линкера, который также понимает карлик-4.

Простым решением является опция -gdwarf-2.

+0

Спасибо за ваш ответ! Я попытался добавить swith '-gdwarf-2' для компиляции, но проблема не решена. Как обновить последнюю версию компоновщика? –

+1

Вы уверены, что перекомпилировали все объекты? Если это так, вы можете попробовать добавить -gdwarf-2 в линию ссылок, хотя я не уверен, что это необходимо. – janneb

+0

Извините, что ответили вам позже. Где линия ссылок? Я не очень хорошо разбираюсь в компиляции. Теперь с добавлением '-gdwarf2', он скомпилирует каждый файл __. F90__, например _gfortran -g -ffree-line-length-none -gdwarf-2 -c -I/disk2/hyf/lib/netcdf/include misc_definitions_module.f90_ , –

 Смежные вопросы

  • Нет связанных вопросов^_^