Fortran安装(vscode+gcc+Python)

news2024/12/26 10:48:24

编写时间: 2024年11月7日

环境配置: gcc + VScode + Python

条件: Windows 10 x64 VMware虚拟机

前言

这是我出的第2个关于Fortran安装的教程,由于上一个方法(你可以在本专栏里找到)对储存空间的要求比较高,并且我个人也不太喜欢用 VS ,比如他一个工程里面只能创建一个文件(大概)。反正我就是菜,我就想搞一个比较方便的,而且有那种代码高亮的。写这种教程的人不止我一个,大家可以参考更优秀的。

如果你认为我写得也可以的话,那你就看吧;如果你认为我写得非常好的话,那就赞一个吧;如果你认为我写得非常垃圾的话,那你就踩一下吧。

准备工作

以下3个下载可同时进行

由于有些下载项较慢,可以使用下载器加速下载,如果没有也可以耐心等待,开一局游戏什么的。

下载vscode

https://code.visualstudio.com/

下载Python

https://www.python.org/

为64位 Windows 系统下载 python 安装包


下载gcc

为什么要下载gcc

如何下载

http://www.equation.com/servlet/equation.cmd?fa=fortran

安装

先装哪个无所谓,但不要同时安装

安装Python

然后等待安装完成,这个时候我们可以开一把(电脑不太行的)。

配置镜像源(可选),可解决 Python 安装第三方库下载慢的问题

参考了以下文章:
python 镜像源配置

按win+R,输入cmd,回车,在终端输入以下命令,为 Python 写入清华镜像源

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

终端显示了以下信息才算成功(Python安装成功+镜像源写入成功)

安装vscode

  • 1、 同意协议

  • 2、 选择路径

  • 3、 默认

  • 4、 可选项 (默认即可)

  • 5、 点击安装并等待安装完成

安装gcc

这个尽量最后,可能涉及重启系统

  • 双击
  • 同意协议
  • 选择路径
  • 等待安装完成

配置

这是极其关键的一步!

参考了这些视频:
VS Code for Fortran

如果你确实不想看英文视频的话,你可以跟着我的教程走,当然我是用的 python 完成后面的一些部分,别的一些教程也和这个视频里面的内容大同小异。但是我觉得他的那个运行过程比较麻烦,于是我就自己写了个脚本来完成。

  • 1、运行vscode

  • 2、更改为中文

    重启程序并应用更改

  • 3、安装插件

    如果弹出一个弹窗,请 无视风险继续安装(笑)

  • 4、第一个程序

    首先请打开一个文件夹,我这里打开的是桌面,然后创建一个以 .f90或 .f95结尾的文件

    在文件中写入以下内容:

    program helloworld
        implicit none
        print*,"hello,world!"
    end program helloworld
    

    我们试着运行一下这段代码

    在终端输入以下下命令:

    这个命令的意思是编译这个程序

    gfortran helloworld.f90
    

    或者

    这个命令可以生成一个名为 helloworld 的可执行程序

    gfortran helloworld.f90 -o helloworld
    

    可以看到在桌面出现了一个 a.exe 文件,这是 Fortran 编译器编译好的可执行程序

    接着在终端输入以下命令:

    这个命令的意思是执行这个程序a,如果你自定义了文件名,请输入【.\你的文件名】

    .\a
    

    执行:

  • 5、安装其他插件

    你的 vscode 可能会弹出以下内容,如果没有弹出这个通知,也没有关系。

    点了 install,没有反应,别急,请按照以下步骤操作:

    win+R,cmd,enter

    在终端输入以下命令

    pip install fortran-language-server
    

    安装成功

  • 6、 配置fortls

    可以看到这个插件已经给了我们配置方法

    接下来,请跟着我的步骤走:

    只需要打开这个 setting.json 文件就可以了,从哪里打开则无需在意

    使用everything找到fortls.exe

    复制程序路径,在setting.json写入:

    "fortran.fortls.path": "C:\\Users\\HelloWorld\\AppData\\Roaming\\Python\\Python313\\Scripts\\fortls.exe",
    

    在这里插入图片描述

  • 7、快速运行Fortran程序

    请参考我写的这篇文章

    Fortran程序辅助构建(Python)

至此,配置完成,有谬误请 (1)在评论区反馈 或者 (2)私信我

希望我的成果配得上您的一个赞

注意,我不是第一个写这种教程的人,如有雷同,纯属巧合,如有侵权,联系删除

参考了以下文章或视频:

python 镜像源配置

VS Code for Fortran

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2238898.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Ubuntu18.04+ROS环境+moveit UR5机械臂仿真

目录 仿真环境: 1.下载Universal Robots机器人功能包 2.运行 Gazebo中的仿真模型 3.运行moveit运动规划 4.运行rviz并进行轨迹规划 仿真环境: 本文使用版本:Ubuntu18.04 ros版本:ros-melodic-desktop-full,安装…

华为路由策略配置

一、AS_Path过滤 要求: AR1与AR2、AR2与AR3之间建立EBGP连接 AS10的设备和AS30的设备无法相互通信 1.启动设备 2.配置IP地址 3.配置路由器的EBGP对等体连接,引入直连路由 [AR1]bgp 10 [AR1-bgp]router-id 1.1.1.1 [AR1-bgp]peer 200.1.2.2 as-nu…

echarts引入自定义字体不起作用问题记录

echarts引入自定义字体不起作用问题记录 1、问题描述 初始化界面字体不作用,当界面更新后字体样式正常显示 2、原因描述 这通常是由于字体文件加载延迟导致的。ECharts 在初始化时可能还没有加载完字体文件,因此无法正确应用字体样式 3、解决方案 …

Sql server 备份还原方法

备份 方法1,选择对应的数据库名-------》右键 任务---------》备份 默认备份类型 完整 文件后缀 .bak 方法2,选择对应的数据库名-------》右键 任务----------》生成脚本 选择要编写的数据库对象(表,视图,存储过程等) 选择对应的 服…

QT鼠标事件

QT鼠标事件 1.概述 这篇文章介绍如何使用事件和获取事件的信号 2.创建项目 创建一个widget类型项目,在widget.ui文件中添加一个label控件 然后在项目名称上右键选择Add new... 添加文件,选择 C Class 自定义类名Mylabel,选择基类Base …

【Android】webview常用方法和使用

文章目录 前言一、常见用法二、基础属性webView的常用方法WebViewClient的常用方法WebChromeClient的常用方法WebSettings的相关方法 三、加载流程和事件回调四、webview和JS之间的互相调用总结 五、参考链接 前言 最近项目又用到了webview,在回顾复习一次webview相…

malloc calloc和realloc区别和联系

malloc malloc是一个⼀个动态内存开辟的函数: 它的函数原型是void* malloc (size_t size);这个函数向内存申请⼀块连续可⽤的空间,并返回指向这块空间的指针。 1.如果开辟成功,则返回⼀个指向开辟好空间的指针。 2.如果如果开辟失败&#xf…

Android studio中关于printf和print和println的区别

print:为一般输出,同样不能保留精度格式转化,也不能换行输出,输出需要加上换行符printf:常用于格式转换,但需要注意不是换行输出,只用于精度转换,跟C语言的printf一样的,输出需要加上换行符prin…

计算机网络常见面试题(一):TCP/IP五层模型、TCP三次握手、四次挥手,TCP传输可靠性保障、ARQ协议

文章目录 一、TCP/IP五层模型(重要)二、应用层常见的协议三、TCP与UDP3.1 TCP、UDP的区别(重要)3.2 运行于TCP、UDP上的协议3.3 TCP的三次握手、四次挥手3.3.1 TCP的三次握手3.3.2 TCP的四次挥手3.3.3 随机生成序列号的原因 四、T…

分布式——BASE理论

简单来说: BASE(Basically Available、Soft state、Eventual consistency)是基于CAP理论逐步演化而来的,核心思想是即便不能达到强一致性(Strong consistency),也可以根据应用特点采用适当的方…

【RabbitMQ】07-业务幂等处理

1. 方式一 序列化设置唯一Id。 Beanpublic MessageConverter messageConverter() {Jackson2JsonMessageConverter jjmc new Jackson2JsonMessageConverter();jjmc.setCreateMessageIds(true);return jjmc;}RabbitListener(bindings QueueBinding(value Queue(name "d…

【多线程奇妙屋】你听说过设计模式吗?软件开发中可全局访问一个对象的设计模式——单例模式,工作常用, 建议收藏 ! ! !

本篇会加入个人的所谓鱼式疯言 ❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言 而是理解过并总结出来通俗易懂的大白话, 小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的. 🤭🤭🤭可能说的不是那么严谨.但小编初心是能让更多人…

android studio 配置过程

Android studio版本:Android Studio Ladybug | 2024.2.1 windows 10 x64 关键问题解决方法: 1.设置代理: 退出首次配置,进入ide(必要时新建工程)然后: 然后重启ide 等待下载完成。 代理地…

java ssm 个人学习管理系统 学习安排 学生在线学习管理 源码 jsp

一、项目简介 本项目是一套基于SSM的个人学习管理系统,主要针对计算机相关专业的和需要项目实战练习的Java学习者。 包含:项目源码、数据库脚本、软件工具等。 项目都经过严格调试,确保可以运行! 二、技术实现 ​后端技术&#x…

【harbor】离线安装2.9.0-arm64架构服务制作和升级部署

harbor官网地址:Harbor 参考文档可以看这里:部署 harbor 2.10.1 arm64 - 简书。 前提环境准备: 安装docker 和 docker-compose 先拉arm64架构的harbor相关镜像 docker pull --platformlinux/arm64 ghcr.io/octohelm/harbor/harbor-regist…

ssm+vue708基于BS的库存管理软件设计与实现

博主介绍:专注于Java(springboot ssm 等开发框架) vue .net php phython node.js uniapp 微信小程序 等诸多技术领域和毕业项目实战、企业信息化系统建设,从业十五余年开发设计教学工作 ☆☆☆ 精彩专栏推荐订阅☆☆☆☆☆不…

速通LoRA:《LoRA: Low-Rank Adaptation of Large Language Models》全文解读

文章目录 总览AbstractIntroductionProblem StatementAren’t Existing Solutions Good Enough?Our MethodLow-Rank-Parametrized Update MatricesApplying LoRA to Transformer 何为高斯随机初始化Empirical ExperimentsBaselinesRoBERTa base/largeDeBERTa XXLGPT-2 medium/…

智慧园区解决方案:科技赋能,打造未来管理新典范

智慧园区作为城市发展的重要组成部分,正以前所未有的速度蓬勃发展。随着5G、云计算、大数据、物联网(IoT)、BIM(建筑信息模型)、人工智能(AI)及区块链等前沿技术的日益成熟与融合应用&#xff0…

如何优化Elasticsearch的查询性能?

优化Elasticsearch查询性能可以从以下几个方面进行: 合理设计索引和分片: 确保设置合理的分片和副本数,考虑数据量、节点数和集群大小。根据数据量和节点数量调整分片数量,避免使用过多分片,因为每个分片都需要额外的…

前端 JS面向对象 原型 prototype

目录 一、问题引出 二、prototype原型对象 三、小结 四、constructor 五、__proto__对象原型 六、原型链 一、问题引出 由于JS的构造函数存在内存浪费问题: function Star(name,age){this.namenamethis.ageagethis.singfunction () {console.log("唱歌&…