编译libf2c的问题w / latest mingw-get-inst(3.16.11),gcc

时间:2011-04-04 23:16:36

标签: gcc linker mingw fortran

我正在尝试将一些非常古老的fortran代码移植到Windows。我想使用mingw和f2c,在OS X和Ubuntu上将代码转换为可用的C没有问题。我在全新安装的mingw上使用netlib分发的f2c.exe,它将代码转换得很好。我有一个“移植”版本的libf2c似乎仍然包含一些未解析的引用 - 主要是文件i / o例程(do_fiof_opens_wsfee_wsfe)并且,特别是一个算术例程(pow_dd)。为了解决这些问题,我尝试从source构建libf2c,但在make过程中遇到了一个问题。 make继续进行dtime_.c,但由于依赖sys/times.h而失败,struct不再是mingw发行版的一部分。 times.h中定义的dtime_.c似乎定义了t中变量的大小,特别是第53和54行的t0t0(错误)是“'t'的存储大小未知”; makefile相同。

libf2c.a被修改为使用gcc,并在没有传递其他选项的情况下调用。

可能有人知道这个问题的解决方法吗?我有信心,一旦我有一个正确编译的libf2c,我将能够将它与gcc链接,代码将像在linux和os X上一样工作。

后续行动:我能够通过在makefile中注释时间相关文件来构建sys/times.h(我的代码不包含任何与时间相关的功能,所以不要认为这很重要。我将它复制到非POSIX搜索目录,如-print-search-dirs中所示,特别是C:\ MinGW \ lib \ gcc \ mingw32 \ 3.4.5。这似乎解决了未解决的引用问题,尽管消除时间文件的需要确实让我感到担忧。虽然我的代码现在正在运行,但最初的问题是 - 如何处理在mingw中调用{{1}}的makefile?

1 个答案:

答案 0 :(得分:0)

您确定MinGW安装是否正确?据我所知,sys/times.h标题仍在那里,在mingwrt-3.18-mingw32-dev.tar.gz包中。我不熟悉gui安装程序,但也许你必须在mingwrt dev组件的方框中打勾。