Я пытаюсь перенести очень старый код на Фортране в Windows.Я хотел бы использовать mingw и f2c, у которых нет проблем с преобразованием кода в пригодный для использования C на OS X и Ubuntu.Я использовал f2c.exe, распространяемый netlib на новой установке mingw, и он отлично перевел код.У меня есть «портированная» версия libf2c, которая, кажется, все еще содержит некоторые неразрешенные ссылки - в основном процедуры ввода-вывода файлов (do_fio
, f_open
, s_wsfe
, e_wsfe
) и, в частности, одну арифметическую процедуру (pow_dd
).Чтобы решить эти проблемы, я попытался собрать libf2c из source , но столкнулся с проблемой во время процесса make.Make переходит к dtime_.c
, но затем терпит неудачу из-за зависимости от sys/times.h
, которая больше не является частью дистрибутива mingw.Кажется, есть struct
, определенный в times.h
, который определяет размер переменной в dtime_.c
, в частности t
и t0
в строках 53 и 54 (ошибка - это "размер хранилища 't' isn"t известно "; то же самое для t0
).
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *.Я уверен, что, как только у меня будет правильно скомпилированный libf2c, я смогу связать его с gcc, и код будет работать так же, как на linux и os X.
ПОСЛЕДУЮЩАЯ: Мне удалось построить libf2c.a
, закомментировав файлы, связанные со временем, в makefile
(мой код не содержит никаких функций, связанных со временем, поэтому не думаю, что это будет иметь значение).Я скопировал его в каталог поиска, отличный от POSIX, как показано в -print-search-dirs, в частности C: \ MinGW \ lib \ gcc \ mingw32 \ 3.4.5.Кажется, это решило проблему с неразрешенными ссылками, хотя необходимость устранения временных файлов меня беспокоит.Пока мой код работает, оригинальный вопрос стоит - как обращаться с make-файлами, которые вызывают в Mingw sys/times.h
?