2011-04-04 60 views
1

我試圖將一些非常老的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,特別是tt0中變量的大小(錯誤是「存儲大小'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?

回答

0

你確定MinGW安裝正確嗎?據我所知,sys/times.h標題仍然存在,在包mingwrt-3.18-mingw32-dev.tar.gz。我不熟悉gui安裝程序,但也許您必須在mingwrt dev組件的對話框中打勾。