在Linux环境下编译Fortran代码
在Linux 环境下编译 FORTRAN 代码时,有一些容易忽略的关键点,记录在下文供大家借鉴。
- 编译的原则:先编译嵌套在最内部的“例程子程序”以及“模块”,然后结合主程序一起编译,生成可执行文件。
- 编译的流程:以 gfortran、ar 编译工具和.f03 后缀的 fortran 代码为例。
- 进入单独存放最内层“例程子程序”和“模块”的目录。
- 使用星号通配符批量编译:gfortran -c *.f03 。执行完成后,每个“例程子程序”都会生成一个 .o 后缀的对象文件,包含例程子程序的“模块”会生成 .o 和 .mod 后缀的文件。
- 使用星号通配符批量链接所有 .o 对象文件:ar -r [自定义名称].a *.o 。执行完成后,会生成 [自定义名称].a 的静态库文件。
- 按照1至3的步骤,把所有主程序中依赖的模块都编译好。然后将 [自定义名称].a 文件和和 .mod 文件拷贝放到主程序所在目录(这是一种笨办法,可以在编译语句里面用 -I 条件来指定路径),然后执行最后的编译语句:gfortran [主程序文件名].f03 [生成的文件1].a [生成的文件…].a -o [自定义的可执行文件名] 。执行完成后,生成一个可执行文件,然后用 ./[可执行文件] 这个语句就可以顺利执行 Fortran 代码了。
- 编译成动态库的方法
上述编译流程中的第2步,将语句改为 gfortran -c -fPIC *,f03 ;流程中的第4步,将语句改为 gfortran [主程序文件名].f03 [生成的文件1].a [生成的文件…].a -fPIC -shared -o [自定义的动态库名].so 。
如阅读本文有不明白的地方,欢迎邮件询问、交流, Email:huoli@baseone.cn
( © 长沙活力信息技术有限公司 )