|
帖主目前使用的编译器是Intel(R) Visual Fortran Intel(64位),现在想通过该编译器在命令行下对源文件subtest.f90进行编译并生成动态库文件,再在另一个主程序main.f90中调用该动态库文件中的函数。
subtest.f90中的内容非常简单,只包含一个subroutine,其功能是输入圆的半径R,计算其面积S,以下该源文件的代码:
[Fortran] 纯文本查看 复制代码 03 | !DEC$ ATTRIBUTES DLLEXPORT :: SUB |
07 | write ( * , * ) "You are using subroutline in DLL" |
编写完subtest.f90后,我在命令行下通过IVF编译器,输入指令:ifort /dll /fPIC /o subtest.dll subtest.f90,成功生成了三个同名的.dll,.lib和.exp文件。
主程序main.f90也非常简单,只起到调用该动态库中的SUB(S,R)子程序并显示计算结果的作用,以下是相关代码:
[Fortran] 纯文本查看 复制代码 04 | !DEC$OBJCOMMENT LIB:'subtest.lib' |
08 | !DEC$ ATTRIBUTES DLLEXPORT :: SUB |
15 | write ( * , * ) '计算结果为:' , area |
|
|