我已经获得了一个可爱的 Fortran 和 C 代码网格的程序。 为了编译该程序,它需要一系列由软件供应商预编译的库。其中包括 Intel MKL、MPICH2 等。 在linux上一切都工作得很好。但在 Windows 上我陷入困境:
使用命令行,我可以通过以下两种方式使用 ifort 编译程序:
[A] ifort/Qlowercase/assume:下划线......
[B] ifort/Quppercase/assume:nounderscore ........
如果我决定使用选项A,我将得到一系列丢失的符号,因为某些外部库是使用大写无下划线编译的,并且我无法解析这些符号。 同样,如果我选择选项 B,其他外部库会提示,因为它们是使用带下划线的小写字母编译的。
有没有办法在链接状态下重新映射符号/功能?还有其他选择吗?
最佳答案
如果您在 Fortran 源代码中使用 ISO C 绑定(bind),您可以准确指定要调用的 C 例程的名称。根据特定例程的情况,包含或不包含下划线。 “绑定(bind)名称”也区分大小写,因此您还可以控制例程名称的这方面。然后使用编译器选项,以便编译器不会进一步更改名称。
关于c - 使用 Visual Studio 结合 Intel Fortran,如何解决使用不同类型的名称重整问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3815992/