我試圖將一些非常老的fortran代碼移植到windows。我想使用mingw和f2c,在OS X和Ubuntu上將代碼轉換爲可用的C沒有任何問題。我使用了由netlib在全新安裝的mingw上分發的f2c.exe,並且它將代碼轉換成了很好的代碼。我有一個「移植」版本的libf2c,似乎仍包含一些未解決的引用 - 主要是文件I/O例程(do_fio
,,e_wsfe
),特別是一個算術例程(pow_dd
)。爲了解決這些問題,我嘗試從source開始構建libf2c,但在make過程中遇到了一個問題。製作收益爲dtime_.c
,但由於依賴sys/times.h
而失敗,這已不再是mingw發行版的一部分。似乎在times.h
中定義的struct
定義了在線路53和54上的dtime_.c
,特別是t
和t0
中變量的大小(錯誤是「存儲大小't'未知」;對於t0
也是如此)。編譯libf2c w/latest mingw-get-inst(3.16.11),gcc
makefile
被修改爲使用gcc,並且調用時沒有傳遞任何其他選項。
可能有人知道這個問題的解決方法嗎?我有信心,一旦我有一個正確編譯的libf2c,我將能夠鏈接它與海灣合作委員會和代碼將像它在Linux和操作系統上的工作。
後續:我能夠通過註釋makefile
中的時間相關文件來構建libf2c.a
(我的代碼不包含任何與時間相關的函數,所以不要以爲這會起作用)。我將它複製到一個非POSIX搜索目錄中,如-print-search-dirs中所示,具體爲C:\ MinGW \ lib \ gcc \ mingw32 \ 3.4.5。這似乎已解決了未解決的參考問題,雖然消除時間文件的需要確實關心我。雖然我的代碼現在正在運行,但原始問題仍然存在 - 如何處理在mingw中調用sys/times.h
的makefile?