【问题标题】:Free / Open Source Windows Fortran Compiler Compatible with Visual Studio与 Visual Studio 兼容的免费/开源 Windows Fortran 编译器
【发布时间】:2017-12-27 10:13:14
【问题描述】:

我正在尝试将一些旧版 Fortran 代码与 Visual Studio C++ 项目链接。我尝试使用 gfortran 的 Windows 构建来构建我的静态库,但 Visual Studio 抱怨未解析的外部符号。我猜这是因为混合 mingw 和 Visual Studio 编译器是一个可怕的想法。

我用谷歌搜索了一下,我看到我的选择是 Intel'sLahey's 编译器,但两者都带有高昂的价格标签。

有没有人知道其他选择,或者我可以采取的不同方法?

针对评论进行编辑

我得到的错误是:

错误 7 错误 LNK2019:未解决 引用的外部符号 ___chkstk 在函数 fmm

四处搜索让我找到了this,这似乎是个坏主意。

【问题讨论】:

  • Visual C++ 可以链接到其他编译器的 DLL,那么您遇到的错误究竟是什么?它们是来自运行时库还是 _your_fortran_function 或重命名的函数?
  • 我支持向我们展示错误的建议。 Fortran 编译器通常使用下划线命名-mangle 例程名称,以避免与 C 例程冲突。您可能需要覆盖它以结合 Fortran 和 C/C++。最近的一个相关问题:stackoverflow.com/questions/1985819/gfortran-dll-underscore
  • @Pete 和 @M.S.B,请参阅上面的编辑,感谢您的关注。

标签: c++ visual-studio fortran


【解决方案1】:

您可以走老路并使用f2c 将您的旧版 Fortran 转换为您应该能够使用 MSFT 工具链构建的标准 K&R C。

我在很多个月里都没有使用过f2c,我记得它有点挑剔而且很难用。随着g77 和后来的gfortan 变得更好,使用它的需求越来越少。

也就是说,对于您的遗产需求,这听起来很合适。 Wikipedia entry on f2c 还包含指向f2c sources 的链接,地址为Netlib

编辑:这可能不会让您摆脱运行时要求——您的 C++ 应用程序可能需要链接到 f2c 运行时。

【讨论】:

  • @Dirk,好主意。实际工作没有任何额外的链接,我所需要的只是 f2c.h。如果你不介意,我暂时不会接受你的答案,我想看看是否有更多的答案发布。谢谢!
  • 有趣。正如我所说,我在很多个月前就使用了它,并且主要在 Linux 上使用 -lf2c 链接是必要的。也许前端变得更好、更完整,或者你只是幸运地使用了 MSFT 库。
猜你喜欢
  • 2015-01-10
  • 1970-01-01
  • 2018-04-19
  • 2010-09-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多