macOS使用CodeRunner快速配置fortran环境

news/2024/11/17 5:44:49/

个人网站:xzajyjs.cn

由于一些项目的缘故,需要有fortran的需求,但由于是M1 mac的缘故,不能像windows那样直接使用vs+ivf这种经典配置。搜了一下网上主流的跨平台方案,主要是gfortran,最近用Coderunner(主要比vscode配置方便得多,并且字体也比vscode默认的要好看的多)比较多,但是其本身并不支持fortran的一键编译运行,研究了一下用最简单的方式进行快速配置。


配置gfortran环境

点我下载对应版本的dmg,我这里由于是M1,因此使用ARM版本

image-20230226151442392

按照提示一步步安装即可。安装成功后在终端输出如下信息即可(我这里是使用homebrew装的,可能会有些许不同):

image-20230226151622816


配置CodeRunner

由于CodeRunner本身并不支持fortran的编译和运行,仅支持代码高亮,因此我们需要自行添加

image-20230226151812433

点击最下方的Edit Languages,在弹出窗口中点击左下角的添加,命名为Fortran

image-20230226151917377

然后在Run Command中键入如下命令:

gfortran $filename -o haha38299 && chmod +x haha38299 && ./haha38299 && rm haha38299

其中haha38299为临时命名,运行完毕后会自动删除,可自行修改,不与其他文件名冲突即可


测试

接着我们在Code Runner中创建一个f90文件,这里可以使用自带的fortran语法高亮

image-20230226152307808

键入如下测试代码:

program hello
print *, "Hello World"
end program hello

Command+S保存,输入文件名,注意这里后缀写.f90

最后Command+R运行


CodeRunner报错说明

使用CodeRunner运行一些需要编译的语言 如 CJavaGo等,有可能会报如下错误:

/Users/xxx/Library/Application Support/CodeRunner/Languages/C++.crLanguage/Scripts/compile.sh:read:45: bad option: -a
Apple clang version 14.0.0 (clang-1400.0.29.102)
Target: arm64-apple-darwin21.6.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin
"/Library/Developer/CommandLineTools/usr/bin/ld" -demangle -lto_library /Library/Developer/CommandLineTools/usr/lib/libLTO.dylib -dynamic -arch arm64 -platform_version macos 12.0.0 12.3 -syslibroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -o /var/folders/rh/mty2h0sn5bdc7hzj05hjbxz00000gn/T/CodeRunner/Untitled -L/usr/local/lib -lc++ -lc++ -lSystem /Library/Developer/CommandLineTools/usr/lib/clang/14.0.0/lib/darwin/libclang_rt.osx.a
Undefined symbols for architecture arm64:"_main", referenced from:implicit entry/start for main executable
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

在询问过官方客服后,客服的解答是:

image-20230226153457671

根据官方的说法,使用macOS中shell默认的zsh,可能会造成不可预知的问题。建议我们将CodeRunner中Shell设置修改为/bin/bash

image-20230226153625913

修改之后果然没有问题,可以正常编译源文件了。


http://www.ppmy.cn/news/598613.html

相关文章

python调用fortran学习笔记

起因:不想把fortran结果手动搬到excel里画图表 先在window系统试, 使用f2py方法的时候总是报错has fortran sources but no fortran compiler found,或者not supported between instances of nonetype and str。 使用dllctypes库的时候&am…

在Linux环境下,使用ifortran编译 带有结构的和.inc头文件 的fortran项目生成.so文件

在Linux环境下,使用ifortran编译 带有结构的和.inc头文件 的fortran项目生成.so文件 1 致谢2 参考文章和手册3 需求描述3.1 文件结构3.2 文件调用关系 4 主程序改造为函数5 项目编译方法5.1 方案一 直接对所有.f90源文件进行编译5.1.1 具体实现5.1.2 注意事项 5.2 方…

Fortran入门——菜鸟级基础语法

前言: 最近需要自学Fortran,本人菜鸟,零基础,这篇文章也是帮助我自己更好的记住一些基础语法。所以,有Fortran基础的,可以跳过本篇啦~ 本文的环境是mingw vscode 哈 1.后缀 Fortran文件的后缀是 .f90(还…

Fortran编译初步

写在前面 注意:本文是关于 gfortran 的文章。如果你不清楚 gfortran,g77,g95 等等的概念的话,不妨看看GCC 的 Fortran 语言编译器介绍;如果你要用 g77 的话,这是一篇g77入门。 [编辑]Fortran 编程中相关文…

idea中有个目录不显示,磁盘中是有的

java项目src下有个目录data不显示 通过打开D盘看目录是有的,运行项目的时候报错,找不到目录下的文件。 解决方案: idea -> file -> seetings -> EDitor -> file types 打开页面后右侧显示有ignore files and folders 查看这里面有…

linux f95编译器,gfortran如何告诉我是否正在编译f90或f95代码?

gfortran可以从文件扩展名中猜出某些东西;如果文件的扩展名为.f,.f90,f95,.f03或.f08,则它将采用具有适当标准的固定(.f)或自由格式。但你可以强制它使用选项-std f2003编译(比方说)fortran2003代码。例如,来自docume…

笔记:CLM5.0模型运行一些参数

Introduction 因为研究涉及CLM和其他模型couple运行,需要把一些CLM运算的变量传递到另一个模型 . 主要涉及的数据都以type形式,罗列在$CESM/components/clm/src/main/clm_instMod.F90 相当于一个个结构体,里面包含很多歌变量 想找出具体…

在Abaqus中使用f90格式的子程序

Abaqus默认支持的是固定(fortran77)格式的Fortran子程序。编译或者调用子程序时会自动搜索文件后缀为:*.for, *.f, *.C, *.c, *.cc, *.CPP, *.cpp, *.CXX, *.cxx 的源代码文件。 如果想使用f90自由格式的Fortran子程序,需要修改Abaqus的环境配置文件。A…