我有一个基本问题,即使在网络上搜索多次也找不到答案。
是否可以通过使用(作为依赖项)由 Microsoft Visual Studio C 编译的目标文件(即 .lib)的 IFORT 来编译 Fortran 程序?
最佳答案
是的,这是可能的,而且相当容易。您有多种选择来执行此操作:
- 将 MSVC 库项目添加到 Fortran Visual Studio 解决方案中,然后使用“项目”>“依赖项”将 C 项目添加为 Fortran 项目的依赖项 *如果 C 项目创建 DLL,则该项目不起作用)
- 将 C 项目中的 .lib 添加到 Fortran 项目中,就好像它是源文件一样
- 在“链接器”>“输入”>“附加依赖项”项目属性中命名 C .lib。
我通常推荐第一个选择,因为这意味着您不必为调试和发布项目的不同设置而烦恼。您确实需要确保构建 C 库以指定与 Fortran 项目相同的运行时库类型(调试与非调试、DLL 与静态)。这位于 C 的代码生成属性页中。
Intel Parallel Studio XE for Windows Sample Bundle 中有一个有效的示例“Fortran Calls C” .
您还需要了解如何从 Fortran 调用 C 过程,并确保 C 参数具有兼容的 Fortran 类型。如果您利用 Fortran 标准的“C 互操作性”功能,效果最佳。
关于使用 IFORT 并使用在 Microsoft Visual Studio 中编译的目标文件(即 .lib)编译 Fortran 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52609264/