Я пытаюсь скомпилировать программу, которая является препроцессором для химической эмиссии.Ошибка с карликовой версией при компиляции программы, связанной с netcdf
Это официальное руководство по его процессу компиляции.
Я уже загрузить исходный код 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.
Компиляция все еще ошибается.
Спасибо за ваш ответ! Я попытался добавить swith '-gdwarf-2' для компиляции, но проблема не решена. Как обновить последнюю версию компоновщика? –
Вы уверены, что перекомпилировали все объекты? Если это так, вы можете попробовать добавить -gdwarf-2 в линию ссылок, хотя я не уверен, что это необходимо. – janneb
Извините, что ответили вам позже. Где линия ссылок? Я не очень хорошо разбираюсь в компиляции. Теперь с добавлением '-gdwarf2', он скомпилирует каждый файл __. F90__, например _gfortran -g -ffree-line-length-none -gdwarf-2 -c -I/disk2/hyf/lib/netcdf/include misc_definitions_module.f90_ , –