CodeBlocks+GFortran搭建Windows的Fortran开发环境

Fortran作为第一门高级编程语言,其历史可以追溯到上个世纪50年代,其最主要的特性就是面向数值计算,而且执行效率高,所以在科学计算领域以及学术领域有着十分广泛的应用。当然,Fortran现在在程序设计界已经很少被人所提及,也许是现如今计算机速度巨大飞跃已经抹平了编译型语言与解释型语言在执行效率上的差异,也许是现代的面向对象的程序设计范式已经深入人心。无论如何,现如今的Fortran可能更多地只是用于科学计算和学术用途,或者是上古留下来的计算程序的编译。

Fortran的编译器在Windows平台上主要是包含在GCC中的GNU Fortran以及经过几次易主最后到了Intel手中、包含于Intel Parrallel Studio中的Intel Visual Fortran。但是后者由于是商业软件,并且价格不菲,再加上其本身仅仅是一个Compiler,还必须要依附于微软的Visual Studio才可以使用。所以,种种限制s使得我们不得不选择更加自由的解决方案。CodeBloks本身作为一款优秀的C/C++的IDE外壳,也支持Fortran。那么编译器自然就是GNU GCC中的GFortran。在CodeBlocks官方的下载页面中,可以很容易地找到适应于Windows的带有GFortran的版本(这个版本带有完整的TDM-GCC,也可以编译C/C++)。

安装之后,需要一些设置。首先,CodeBlocks默认的编译器仍然是GNU GCC C Compiler,所以应该把GNU GCC Fortran Compiler设置为默认。 打开CodeBlocks之后在“Settings”菜单中找到“Compiler…”,打开后左侧选中“Global compiler settings”,在上方的“Selected compiler”中选择“GNU Fortran Compiler”,并点击“Set as Default”即可。这一修改是全局的,以后每次创建的“Fortran Application”项目都不需要再手动修改编译器,当然坏处就是在C/C++项目创建的时候要注意编译器的设置。

fortran_1

仅仅做到这一点还不够。之前发现GFortran编译出的程序还必须要依赖来自于MinGW中的几个DLL,无论是编译成Debug版本还是Release版本。这样编译出的程序就缺少了可移植性。于是需要在Link的参数里面加上-static执行静态连接。在刚才打开的对话框中,右侧中部选项卡选“Linker Settings”,下部右侧“Other linker options”的框中填入-static,最后“OK”保存。

fortran_2

至此可以说Windows下Fortran的开发环境算是搭建完成了。

这篇文章的目的还是记录一下自己遇到的GFortran的DLL依赖问题。而在此之前一直没有想到解决方案。最近突然想到是否可以从静态编译入手解决。后来在GFortran的官方Wiki中找到了静态编译的命令行参数,但是如何在CodeBlocks中加入这个参数还是费了一点功夫,尝试了一番最后找到了上面的解决方案。

关于Fortran还有一点想说的是,之前完全没有想象到Fortran是一门多么古老的语言,Fortran语法中有着十分多的奇怪的约定,不过当我真正见到下面这个东西的时候,我才明白,Fortran身上的历史包袱到底有多重。

fortran_4
Fortran的编程表格,摄于 Computer History Museum, Mountain View, California

 

《CodeBlocks+GFortran搭建Windows的Fortran开发环境》上有1条评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注