资讯动态

Fortran下载安装全指南:编译器选型、环境配置与踩坑排查

发布时间:2026/9/27 1:04:08 来源:尧图企业网站定制
朋友发来一句帮我装个Fortran我明天要交作业时我最初的反应是下载安装怎么还需要帮忙直到我真的打开浏览器搜索Fortran 下载安装才发现这事放在今天这个环境下对新手来说依然是一道不低的门槛。这段经历让我感慨很深。Python有官方安装器点两下鼠标就能跑起来C/C有Visual Studio Community和MinGW的成熟生态Java有官方JDK安装包。唯独Fortran免费编译器大多藏在GCC工具链里Windows下还要自己去配环境变量稍微选错编译器版本后面全是连锁报错。更不用说还有Simply Fortran、Intel Fortran一堆选项同时存在新手往往分不清我到底该装哪个。今天就把下载安装Fortran这件事的完整思路拆一遍从环境选型、下载路径、安装配置到第一行代码跑通尽量做到照着做就能过。我默认阅读这篇文章的读者是第一次接触Fortran的大学生、需要从Python/C转到Fortran程序维护的从业者、以及被数据密集型计算项目逼着搭环境的研究人员。接下来我从到底装哪种Fortran开始讲这步想清楚后面能省一半的时间。1. 先说结论Fortran下载安装为什么能劝退一批新手对没装过Fortran的人来说第一次搜索Fortran 下载安装大概率会遇到这几种情况。第一种是搜索结果鱼龙混杂。你能翻到各种Intel Visual Fortran 2013 安装包的网盘分享也能看到Simply Fortran 破解版之类的链接还有一堆标着Fortran编译器合集的帖子。真正官方、干净、带详细说明的下载页面在新手的第一屏里反而不突出。这一点和Python直接去官网下载安装程序的体验完全不是一个量级。第二种是概念混乱。Fortran和C/Python不一样没有一个官方安装程序。不同的厂商提供不同的编译器实现常见的有GCC旗下的gfortran、Intel的ifort/ifx、NVIDIA的nvfortran前身是PGI、以及Simply Fortran这类商业IDE自带编译器。它们全部能编译Fortran但安装方式、使用方式、性能特点和许可证差异很大。如果你上来就搜Fortran下载容易被带到某个特定商业产品页面装上之后未必适合你的场景。第三种是版本和位数问题。Fortran从FORTRAN 77到Fortran 90/95/2003/2008/2018语法差异很大。很多老项目还是Fortran 77新代码则普遍用Fortran 90以上。安装老古董编译器比如Intel Visual Fortran 2013固然能跑老代码但对新标准支持极差。反过来装了最新gfortran去编译70年代风格的固定格式代码有时候也会栽在文件扩展名和编译选项上。这其实不是下载安装本身的问题但新手很容易把编译器问题和环境问题混为一谈导致排查半天找错方向。关于编译器的位数Windows下区分32位和64位版本。现代系统基本都用64位编译器但有时某些老项目依赖32位动态库或者依赖特定网络授权工具这时候就得特意找对应的编译器版本。此外动态链接的DLL问题也是个经典雷区gfortran编译出来的程序依赖libgfortran-*.dll如果你把exe拷到别的机器忘了带上这个DLL目标机器立刻报找不到libgfortran-5.dll。很多人以为是安装出了毛病其实是运行环境缺文件。我还想专门提醒一个点下载渠道的可靠程度。先看官方文档的说明在这里同样适用。Fortran编译器没有统一的官方一站下载入口尤其是Windows下的gfortran第三方分布众多。比较稳妥的获取路径只有几个GCC官方发布站、MinGW-w64项目、MSYS2包管理器、厂商官方页面Intel oneAPI官网、Simply Fortran官网。凡是让你购买激活码、从网盘下载所谓破解包、或者要求在安装时关闭杀毒软件配合注册机的一律远离。这类东西不仅可能携带恶意程序还会让后续的教学或科研项目背上不必要的安全风险。这个圈子里有个不成立的共识宁可花时间找官方镜像也不要图省事用来源不明的安装包。2. 安装前先选型gfortran、Simply Fortran还是Intel Fortran2.1 三种主流编译器/环境的特点对比这里我说一句大实话Fortran的下载安装之所以让新手头大很大程度是因为没人告诉他你应该装哪一个。所以我把现阶段最常用的三套方案放在一起做一个直观对比。方案成本平台编译性能适合人群gfortranGCC完全免费开源Windows/Linux/macOS编译速度不错优化能力均衡绝大多数学习、科研、个人项目Simply Fortran商业软件有试用期Windows/macOS/Linux自带图形IDE和内置编译器开箱即用不想碰命令行、希望像VS一样点按钮编译的用户Intel Fortranifort/ifx免费许可oneAPIWindows/Linux/macOS自动向量化强、OpenMP支持好老牌HPC编译器并行计算、性能敏感、和MKL库深度配合的应用注意这里的免费许可针对个人、教学和部分开源场景Intel oneAPI对个人开发者免费商业商用要自己确认条款。很多人以为必须购买正版其实从Intel推出oneAPI工具套件后ifort/ifx的安装门槛大幅降低不再需要购买商业许可。2.2 不同场景怎么选如果你只是课程作业、入门练习、或跑一些不太夸张的数值计算我的建议是直接装gfortran。理由很直接免费、跨平台、和Linux服务器环境一致你在一台Windows笔记本上学到的编译经验搬到学校集群上几乎无缝衔接。而集群上跑的编译器十有八九都是Intel一派或gfortran。提前熟悉gfortran的命令行风格以后在服务器上处理文本、脚本、Makefile都会顺畅很多。如果你是纯新手而且对命令行环境有恐惧感或者只是临时救急需要能编译能出结果Simply Fortran是更稳的选择。它自带编译器你把源码拖进去点一个编译和运行按钮就能看到结果。对只想做作业、不想碰PATH和编译选项的人来说这种图形化工作流确实是救命。如果你是做数值模拟、天气气候、流体力学这类重负载计算的需要考虑Intel Fortran。原因有二一是Intel编译器在自动向量化和针对Intel CPU的优化上确实有优势二是它和Intel MKL数学核心库深度绑定很多线性代数、FFT库的Fortran接口用Intel编译器调用最省心。配合Visual Studio或VS Code使用也能得到类似IDE的体验。还有一个选择维度容易被忽略你后续要链接什么库。如果项目依赖MPI消息传递接口多半要考虑编译器与MPI实现的搭配。Windows下用Intel Fortran Intel MPI是相对省心的组合用gfortran OpenMPI则需要额外配置。如果只是一般的串行程序不用纠结这个直接按上面三种方案选就行。此外如果你是要维护老项目特别是有大量Fortran 77固定格式代码、依赖老一批第三方库的老程序那么gfortran和ifort对旧语法兼容性都不错但你要注意编译选项上的差异。gfortran编译固定格式需要加-fixed-form或直接把文件后缀命名为.f/.forifort则默认根据扩展名判断格式。这些细活我会放在第7章专门讲。2.3 关于Intel Visual Fortran 2013这类历史版本的提醒搜索结果里最容易见到的就是intel visual fortran 2013 安装包。我想特别提醒除非你的课程实验板和某台机器上已经配好了对应的旧版环境否则真的不建议再去折腾2013这样老掉牙的版本。2013对应的还是旧式Intel Fortran Composer XE激活方式复杂和现代Windows 10/11的兼容性也一般而且编译器对Fortran 2008/2018新特性支持有限——你在新版标准下写的现代Fortran代码它很可能直接报语法错误。更好的选择是直接用当前免费的Intel oneAPI HPC Toolkit里面带有新版ifort经典版仍在维护和ifx基于LLVM的新编译器。3. Windows下gfortran的完整安装与配置流程3.1 下载途径MSYS2还是WinLibsWindows下装gfortran其实没有唯一正确的答案主要有两条主流路线。路线一用MSYS2包管理器。MSYS2是一个给Windows配好包的类Linux环境里面可以安装mingw-w64工具链。装完之后你在MSYS2终端里执行pacman -S mingw-w64-ucrt-x86_64-gcc它会自动装好包括gfortran在内的全套GCC工具链gcc、g、gfortran。优点是你后续还能用它装很多科学计算依赖库基本就是一个包管理器解决Windows下的工具黑洞。缺点是MSYS2环境的PATH和自带的msys2 shell流程新手初看会有点绕。路线二直接用WinLibs的独立GCC发行包。WinLibs是Windows下GCC的预编译发行版官网提供ZIP压缩包里面已经包含gcc、g、gfortran、mingw32-make等工具。下载后解压到一个纯英文目录把bin目录加到PATH即可。整个过程非常直观很多推荐用gfortran的教程都在用这条路线。我个人现在更推荐MSYS2因为后续装依赖库方便而且C/C和Fortran混编时同一个包管理器里能直接装各种库干净省事。但如果只是临时用一下WinLibs更快。3.2 下载与解压的细节以MSYS2为例到msys2.org下载安装器默认安装目录建议用C:\msys64。装完打开MSYS2终端先执行pacman -Syuu升级系统包到最新再执行上面的pacman命令安装GCC。安装完成后关闭MSYS2终端打开Windows自带的PowerShell或cmd执行gfortran --version如果提示找不到命令说明MSYS2的bin目录没有加到系统PATH。MSYS2安装时通常会自动添加但如果你的系统环境变量里没有就手动把C:\msys64\ucrt64\bin取决于你装的包版本可能是mingw64/bin加到Path变量。加完之后重新打开终端再验证。如果选WinLibs路线去winlibs.com下载页面选带gfortran的版本比如Win64 with everything那个包。下载后是个7z压缩包解压到比如D:\mingw64。注意解压路径不能带中文和空格这是老规矩不然很多编译工具在路径解析时会出诡异问题。然后把D:\mingw64\bin加入系统PATH。3.3 环境变量配置的两种方式和验证配置PATH有两种方式临时生效只对当前终端窗口有效永久生效需要进系统设置。我建议直接永久配置省得每次重开终端忘了配置。在Windows 10/11上右键此电脑→属性→高级系统设置→环境变量在系统变量列表里找到Path编辑并新增一行填上你的编译器bin目录。注意别误删原有的变量这种事我见过不少——装一次软件PATH被改乱了后面一堆工具全崩。配置完成后重新打开终端输入gfortran --version能看到类似GNU Fortran (GCC) 13.2.0就说明基本成了。下一步写个最简单的测试文件验证编译链路是否完整。3.4 第一次编译写一个Hello World找个空白目录新建hello.f90文件program hello implicit none print *, Hello, Fortran! end program hello然后在终端进入该目录执行gfortran hello.f90 -o hello.exe如果一切顺利目录下会生成hello.exe。在cmd或PowerShell里直接输入hello.exe运行输出Hello, Fortran!。刚装好的环境到这里就算验证过一遍了。这里多说一句implicit none在刚学Fortran时总被忽略但这是现代Fortran的基本习惯——加上它编译器就不会给你自动猜变量类型很多老代码里的bug其实就来自隐式变量类型带来的意外。安装环境的验证例子里把它写上也是在暗示你以后写代码都别省这一行。4. Simply Fortran零命令行用户的稳妥路线4.1 从官网下载和安装Simply Fortran是一个商业IDE但免费试用版的功能基本够用限制是偶尔提醒购买授权对学习和小型项目来说影响不大。它的官网是approximatrix.com下载页面有Windows、macOS、Linux多个版本根据系统下载对应安装包。安装过程几乎是傻瓜式一路Next选择安装目录同样建议英文目录完成后桌面会出现Simply Fortran图标。你不需要单独安装编译器因为安装包内置了一份gfortran编译器IDE在后台会自动调用它。这一点和gfortran的手动配置路线截然不同也是它对新用户特别友好的原因。4.2 新建工程、编译、运行打开Simply Fortran选择File → New Project给工程起名选择保存目录。工程创建后软件的Project面板会生成一个默认的源代码文件你可以在编辑器里替换成自己的代码。写完代码后点工具栏的绿色运行按钮它会自动完成编译、链接、执行并在IDE底部的输出窗口里显示结果。对这种工作流我观察到一个现象很多新手会误以为点运行就是课堂演示里的运行按钮忽略了下方的编译输出信息。但恰恰是那些编译警告和错误信息在调试时比结果窗口更重要。Simply Fortran会把错误对应的源代码行高亮出来你双击错误信息就能跳到出问题的行这个功能很实用值得认真用起来。4.3 内置调试器与新手的断点调试图Simply Fortran还内置调试器。初学阶段你可能觉得断点调试没必要但一旦遇到逻辑错误程序不报错但结果不对你会感谢自己学了怎么打断点。在行号左侧点一下就能加红点然后以Debug模式运行程序会在断点处暂停你能逐步观察每个变量的实时值。这在处理循环、数组越界这类问题上特别有效。关于试用版的边界Simply Fortran试用版可以正常编译运行小程序某些高级优化选项可能会受限但对教学和入门项目来说影响很小。如果你只是临时救急试用版完全足够如果长期使用买个正版也合理花小钱省时间嘛。另外Simply Fortran对源码编码和固定格式的识别比很多编辑器省心——它打开.f文件会自动按固定格式处理打开.f90自动按自由格式处理不需要你手动指定。这种细节对纯新手来说很友好。如果你拿到别人发给你的项目直接在IDE里选择Open Project打开它的工程文件即可完全不用自己理解Makefile。5. Intel Fortran科学计算和并行场景的进阶方案5.1 oneAPI工具套件的下载与安装Intel现在的Fortran编译器已经整合进oneAPI HPC Toolkit。具体流程是打开Intel官网的oneAPI下载页面选择HPC Toolkit下载适合Windows的版本。安装前先保证系统里已经装好Visual Studio社区版即可因为Windows版的Intel编译器需要配合VS使用。运行安装器勾选HPC Toolkit和Base ToolkitHPC Toolkit依赖Base Toolkit的运行库通常安装器会自动勾选。安装过程比较久期间会提示你接受许可协议。完成后Intel会自动集成到Visual Studio的编译菜单里。不要以为装完HPC Toolkit就完事了。Windows下使用ifort/ifx最核心的要求是安装VS时勾选使用C的桌面开发工作负载。如果你只装了VS的Python开发组件Intel集成会失败。5.2 在Visual Studio里配置Fortran工程打开VS新建项目时左侧模板列表会出现Fortran相关模板因为Intel插入了项目模板。选一个Console Application模板创建工程后把你的Fortran源码放到Source Files下直接按F7或生成按钮就能编译。VS上层会调用Intel编译器编译你的.f90文件最终生成exe。这种IDE体验和Simply Fortran类似但VS本身的强大编辑器、版本控制集成、调试器是很多人离不开它的原因。如果你的学校或单位已经在用VS Intel Fortran的组合直接照搬现有工程设置即可不用自己从头摸索。5.3 命令行编译ifort与ifx的选择如果你不想开IDEIntel也提供命令行编译器。安装完成后需要打开Intel oneAPI command prompt之类的专用终端窗口因为里面预置了Intel编译器的环境和PATH变量。在这个窗口执行ifort /O2 hello.f90 /exe:hello.exe或者用新版ifxifx -O2 hello.f90 -o hello.exe注意Windows下Intel编译器既支持/参数风格也支持-参数风格前者是Windows传统后者是跨平台习惯。具体用哪个看你自己偏好但在命令行里混用两种风格容易乱建议一个项目内统一。关于ifort和ifx的取舍ifort是经典编译器优化成熟、兼容性好但Intel已明确未来只会维护修复新特性开发投入在ifx上。ifx基于LLVM架构对新Fortran标准支持更积极执行性能正在追赶ifort。对于新项目我建议直接用ifx维护老项目则看你原来的构建脚本用的是哪个保持原样最稳。5.4 OpenMP与向量化的一点说明Intel Fortran在学术圈受欢迎的一大原因是并行计算。常见的做法是源码里写OpenMP指令program omp_test use omp_lib implicit none integer :: i, tid !$omp parallel private(tid) tid omp_get_thread_num() print *, Hello from thread, tid !$omp end parallel end program omp_test用ifort/ifx编译时需要加/Qopenmpifort或-fopenmpifx选项否则并行指令会被忽略。这个坑很多新手踩OpenMP指令写好了忘了在编译命令里加参数结果程序看起来能跑、但速度完全没提升。我在第7章的排查环节会再提到。安装Intel编译器的另一个价值在于Intel MKL。线性代数、FFT、BLAS这些库的Fortran调用在Intel编译器下几乎零配置。你只要在工程里链接mkl_intel_lp64.lib等库文件即可。如果你做的是数值计算课程或科研项目这套组合的战斗力非常强。6. 编辑器与IDE组合VS Code Fortran插件配置6.1 为什么选择VS Code如果你的工作环境决定了编辑器得轻量、跨平台、能兼顾多语言那么VS Code会是个不错的中间选择。它本身不是Fortran IDE但装完特定插件后能提供语法高亮、格式化、代码补全、甚至集成调试器。前提是系统里已经装好了某个Fortran编译器通常是gfortran。6.2 插件配置与settings.jsonVS Code里推荐三个插件Modern Fortran提供语法高亮、悬停提示和基础补全。Fortran IntelliSense基于Fortran Language Server提供更完整的语义补全。Better Fortran主要提供语法高亮老牌插件。装完插件后在settings.json里指定编译器和路径{ fortran.fortranlint.compiler: gfortran, fortran.fortranlint.lintOnSave: true, fortran.dap.console: integratedTerminal, fortran.linter.lineLength: 132 }注意Modern Fortran插件做格式化时有一个中文注释的坑。源码文件如果用UTF-8编码且注释里有中文某些版本的格式化工具会把列对齐搞乱。解决方案是要么注释不用中文要么保存为UTF-8 with BOM格式要么给格式化工具配置列宽上限。我个人更推荐干脆用英文注释省事。6.3 用Tasks.json编译运行的实操模板在VS Code里按CtrlShiftP输入Tasks: Configure Task创建tasks.json填入类似这样的内容{ version: 2.0.0, tasks: [ { label: Fortran Compile and Run, type: shell, command: gfortran, args: [${file}, -o, ${fileDirname}/${fileBasenameNoExtension}.exe, , ${fileDirname}/${fileBasenameNoExtension}.exe], group: { kind: build, isDefault: true }, problemMatcher: [$gcc] } ] }这样在编辑界面按CtrlShiftB就会直接编译当前文件并运行exe。小项目用这个模板足够比手动开终端输入命令舒服很多。注意这里的args里用了在shell模式下PowerShell和cmd都支持但如果你换了shell或者用非Windows系统写成这样会出问题需要调整成对应的命令拼接方式。6.4 多文件工程Makefile还是CMake当项目从一个.f90变成五个、十个源文件时再用单文件tasks.json就有点吃力了。这时候就需要Makefile或CMake。gfortran配套的mingw32-make工具可以写简单MakefileFF gfortran FFLAGS -O2 -Wall OBJ main.o module_a.o module_b.o program: $(OBJ) $(FF) $(FFLAGS) -o program.exe $(OBJ)用起来无非是把之前的单文件编译命令变成依赖规则。对习惯了IDE的人可能觉得没必要但很多Linux服务器上的Fortran项目主力就是Makefile提前熟悉能让你在之后搬项目时少掉很多头发。如果你想要IDE般的工程管理又不想绑定专用工具CMake VS Code也是一种选择但配置成本更高。入门阶段我并不建议一上来就上CMake——先把gfortran Makefile玩熟CMake的概念你自然会懂。这句话同样适用于Fortran下载安装后的第一步不要一开始就追求全自动化构建先用最简单的方式让程序跑起来再去考虑编排。7. 安装后的常见坑与排查建议7.1 终端提示不是内部或外部命令这是最经典的一条你安装了gfortran但终端告诉你找不到命令。原因是PATH没有配置正确或者终端没有重新启动。我的排查顺序是先重新打开一个新的终端窗口再执行gfortran --version排除没刷新的情况。如果还不行在终端执行echo %PATH%cmd或$env:PathPowerShell确认里面是否有你添加的bin目录。确认路径文字没有拼错尤其注意MSYS2的bin到底是哪个ucrt64/bin还是mingw64/bin取决于你装的包。如果PATH里有但对不上手动重新加一次并检查是否误用了中文字符。7.2 编译时提示未定义的引用或找不到源文件如果gfortran编译多文件程序时报未定义引用通常不是环境问题而是你的编译命令没有包含所有源文件gfortran main.f90 module_a.f90 -o program.exe只编译main.f90会漏掉module_a里的子程序导致链接失败。新手容易把编译和链接两个阶段混在一起理解其实这条报错恰恰是链接阶段的问题。解决方案就是把所有相关源文件一并加入命令或写成Makefile维护依赖关系。7.3 运行exe时缺少libgfortran-5.dll我前面提到的DLL问题在这里展开。gfortran编译的程序默认动态链接libgfortran-*.dll你在自己机器上能运行是因为bin目录在PATH里。把exe拷给别的电脑运行对方若没有这个DLL就会弹出找不到libgfortran-5.dll的对话框。解决方案有三个把整个mingw64/bin目录加到对方的PATH不推荐污染对方环境。把需要的DLL文件复制到exe同目录下推荐。编译时用-static-libgfortran选项做静态链接使exe自带库副作用是体积变大而且其他依赖库也要静态处理。7.4 源文件格式与扩展名错误Fortran源码有两种格式固定格式Fortran 77时代扩展名常为.f或.for和自由格式Fortran 90之后扩展名常为.f90、.f95、.f03。如果拿自由格式语法写到.f文件里gfortran会按固定格式解析报出一堆莫名其妙的行列错位错误。最简单的解决办法是统一使用.f90扩展名并检查编译选项。gfortran对.f文件默认按固定格式处理对.f90默认按自由格式处理这点要心里有数。7.5 OpenMP速度没有提升如果用了OpenMP但跑起来还是单线程并且用的是ifort检查是否加了/Qopenmpifx是-fopenmpgfortran是-fopenmp。另一个常见因素是环境变量OMP_NUM_THREADS没有设置或系统逻辑核数有限。调试时可以先设置OMP_NUM_THREADS4手动验证并行是否生效。7.6 中文编码与注释乱码Windows下源码若以GBK/GB2312保存gfortran默认能接受中文字符串但如果你用VS Code打开显示的可能是乱码因为VS Code默认按UTF-8解码。反过来源码是UTF-8保存gfortran对中文字符串常量可能按字节处理某些情况下输出长度会异常。我的建议是除非项目强制否则源码统一用UTF-8 without BOM存字符串用英文注释看团队习惯。安装环节不用太纠结编码但写代码时一定要统一否则协作时问号满天飞。7.7 我最后想分享的几条实操经验最后聊聊我这些年反复踩完坑后沉淀下来的几条习惯供大家参考。新建环境时不用急着装一堆东西。只要PATH里有了gfortran就能覆盖大部分入门、课程作业、甚至不少带源码的中型项目。真正需要的扩展是后面按项目需求一层一层加的。验证环境是否可用永远是从一个几行的Hello World开始而不是直接编译大项目。单体小例子能过才说明环境本身没问题之后出了问题才可能定位到你的代码逻辑。对于中文资料和各种网络教程请保持怀疑。Fortran相关工具链更新节奏不快但也不慢旧教程给出的下载链接经常失效或被挂到第三方网盘。遇到失效链接优先去官方页面看最新版本别硬凑老版。如果你同时装了Intel编译器又装了gfortran注意PATH顺序会影响命令行实际调用的是哪个编译器。我就吃过以为在用ifort结果执行的是gfortran的暗亏。用命令行时建议明确写出完整路径或在IDE项目设置里锁定编译器路径。最后一件事安装目录尽量放在很简单、不带空格的路径比如C:\Fortran\src或D:\hpc\project。这个习惯能省掉未来大量莫名其妙的路径解析问题尤其当你开始接触Makefile、CMake和MPI后会更加感激这个决定。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑