2013-10-01 6 views
2

У меня возникли проблемы с компиляцией кода Fortran со ссылками на DISLIN. Я загрузил DISLIN с веб-сайта, распаковал файл и запустил настройку. Я добавил переменную среды, называемую DISLIN (C: \ dislin), и добавил C: \ dislin \ win в раздел PATH моих системных переменных.Компиляция DISLIN gfortran

Я пытаюсь скомпилировать пример кода веб-сайта DISLIN, который включает в себя линию

Я использую оболочку MinGW для компиляции с помощью команды gfortran -o progrname -ldislin EX11_1.f90 и я получаю следующее сообщение об ошибке:

Fatal Error: Cant open module file 'dislin.mod' for reading at (1): No such file or directory.

Я попытался изменить путь переменной и даже переместить файл dislin.mod (который есть), но все равно получить то же сообщение.

ответ

2

Ok Я исправил эту проблему, поэтому подумал, что я вернулся и опубликовал то, что сработало для меня, если кому-то это понадобится ...

  1. Установите DISLIN и MinGW на диск c
  2. Скопируйте disgf.a из/c/dislin и dislin.f90 из/c/dislin/gf в каталог, содержащий ваши файлы fortran (для меня это/c/MinGW/P Примечание)
  3. Использования оболочка MinGW перейти к вам файлы: cd /c/MinGW/pnote
  4. компиляции dislin.f90 и вашему Фортрану: gfortran -c dislin.f90 progName.f90 (dislin.f90, очевидно, нужно только сделать один раз)
  5. ссылки библиотеки и т.д., и компиляцией: gfortran progName.o disgf.a -luser32 -lgdi32 -lopengl32 -o exeName
  6. 'run' exeName
0

Вы, вероятно, нужно указать путь к файлам модуль DISLIN:

gfortran EX11_1.f90 -o progrname -ldislin -I/path/to/DISLIN/modules 

и, если он уже не настроен, как описанный here, также путь к самой библиотеке:

gfortran EX11_1.f90 -o progrname -ldislin -I/path/to/DISLIN/modules \ 
     -L/path/to/DISLIN/library 
+0

Большое спасибо, теперь файлы будут скомпилированы, однако теперь появляется новая ошибка. он говорит «неопределенная ссылка на« subroutine_title »для каждой подпрограммы, которая вызывается в EX11_1. Я проверил, и они вызываются, как определено в модуле dislin. Любые идеи по решению? – user2538235

0

Они предоставляют командный файл (окна) для компиляции и компоновки для вас.

f90link -c My_Program 

Это находится в C: \ DISLIN \ Win

Кроме того, если у вас возникли проблемы с dislin.mod файл который находится в C: \ DISLIN \ гс затем перекомпилировать, что с -c компилировать. Я нашел всю эту информацию в c: \ dislin \ readme.inf

0

рядом, как я могу судить (январь 2018 года) dislin (64 бит) терпит неудачу с gfortran 7.2, period; и, вероятно, со многими другими более новыми компиляторами. При попытке ссылки gfortran 7 говорит, что «dislin.mod» - это неузнаваемый формат. Я думаю, что эта программа сильно зависит от точно правильной синхронизации версий - что-то, что делает такое программное обеспечение бесполезным имхо после многих лет исследований.

и нет, правильность различных «путей», похоже, не помогает.

В конце концов, gnuplot работает, «вообще».Не уверен, почему я потратил столько времени на бренд x. jrc

+0

Если вы используете предварительно скомпилированные файлы модулей, вы ДОЛЖНЫ использовать тот же компилятор и ту же версию, что и для создания файла модуля. Неважно, используете ли вы Gfortran 7.2, Intel 18 или xyz версии 42, вы ДОЛЖНЫ использовать тот же компилятор, который использовался для предварительно скомпилированной библиотеки. –

+0

Это означает, что вы должны скомпилировать любой заголовок, определяющий модуль (возможно, 'removin.f90' в соответствии с https://stackoverflow.com/a/19390203/721644 и перекомпилировать его с тем же компилятором, который вы будете использовать для своих программ , –

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