小白跑WRF第二天,安装环境(各种编译器)的准备
小白跑WRF第二天,安装环境(各种编译器)的准备
- linux子系统位置
- 编译器和系统环境的安装
- 检查各个环境和安装
- 升级sudo
- 一次安装所有环境
- 建立文件夹
- 下载测试环境文件
- 测试环境
- 解压测试文件
- 测试 1.固定格式 Fortran 测试
- 测试 2.自由格式 Fortran 测试
- 测试 3.C 测试
- 测试 4.Fortran调用C函数 测试
- 测试 5. csh 测试
- 测试 6. perl 测试
- 测试 7. sh 测试
- 添加环境变量
- 打开环境变量文本
- 重新生效环境变量
linux子系统位置
接上一个帖子,Windows下WSL2安装linux子系统在安装完成后,可以在资源管理器(或者计算机)中找到一个linux盘符,如下图,里面就有home文件夹,
编译器和系统环境的安装
首先推荐一个网址,是WRF官方的安装教程:https://www2.mmm.ucar.edu/wrf/OnLineTutorial/compilation_tutorial.php
第一步是需要安装各类系统环境,其实就是几个系统支持编译器,本文推荐的是gfortran和gcc模式,网上还有其他模式。
需要安装的系统环境有:
系统环境 | 用途 |
---|---|
csh | Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务,csh是具有C语言风格的一种shell。 |
m4 | m4是一个通用的宏处理器,主要是后续的安装过程中会用到,不然会报错。 |
gcc | gcc是由GNU推出的一款功能强大的、性能优越的多平台编译器。gcc编译器能将C、C++语言源程序和目标程序编译、连接成可执行文件,而后面很多包都是C或者C++的。 |
g++ | 和gcc功能差不多,或者说干的事情都是一样的,但是有些文件用gcc编译会报错,所以还需要它。 |
cpp | *好吧,我承认我没找到相关资料 * |
gfortran | 对应的fortran编译器,WRF有一些东西是fortran编的。 |
make | make是一种C文件编译器,和gcc一样,但是大型的工程中,里面有很多文件,因此进行开发的时候,每个文件都使用gcc进行编译会很麻烦。而使用make文件,则可一次性对很多文件进行编译。 |
检查各个环境和安装
这个我不演示了,因为新装的linux大概率是没有装的,这也是为啥需要网的原因,因为离线肯定很麻烦,我也没尝试过。第一篇帖子说的特定的linux也是指的内置好这些环境的系统,这样后续的离线安装问题也不大。
用which命令就好了:
升级sudo
原因的安装csh时会报错:Unable to locate package csh
输入:
sudo apt-get update
得到:
一次安装所有环境
这里就不分步安装了,一起来
输入:
sudo apt install gcc cpp gfortran g++ m4 make csh
得到:
中途会有一个确认的选项,选yes
如果不放心,可以一个一个安装,或者,装完以后which查看一下。
建立文件夹
创建两个文件夹,一个Build_WRF,用来进行WRF的安装;一个TESTS,用来进行安装前的环境测试。
输入:
mkdir Build_WRF
mkdir TESTS
这个就不截图了,没意思,执行完成后,系统home文件夹下的用户文件内多出两个文件夹。
下载测试环境文件
将操作目录改到。。TESTS。。下
cd TESTS
下载测试文件有三种方式
- 利用Linux命令下载。
- 进入网站https://www2.mmm.ucar.edu/wrf/OnLineTutorial/compile_tutorial/tar_files/直接下载。
- 留下邮箱,作者给你发。
这里展示第一种
输入命令:
wget https://www2.mmm.ucar.edu/wrf/OnLineTutorial/compile_tutorial/tar_files/Fortran_C_tests.tar
得到:
这时候,你的TESTS文件里就多出了一个Fortran_C_tests.tar文件,这是测试你Linux环境的,和WRF没啥关系哈,看名字,测试C和Fortran。
测试环境
这也是之前给的官网教程中的内容,英文看不懂就用浏览器翻译成中文。
解压测试文件
输入:
tar -xf Fortran_C_tests.tar
得到
好吧,不会有任何反应,害我输了三遍,但是实际是成功了。可以去文件夹下面看,不行就手工解压。
测试 1.固定格式 Fortran 测试
输入:
gfortran TEST_1_fortran_only_fixed.f
./a.out
得到
测试 2.自由格式 Fortran 测试
输入:
gfortran TEST_2_fortran_only_free.f90
./a.out
得到
测试 3.C 测试
输入:
gcc TEST_3_c_only.c
./a.out
得到
测试 4.Fortran调用C函数 测试
输入:
gcc -c -m64 TEST_4_fortran+c_c.c
gfortran -c -m64 TEST_4_fortran+c_f.f90
gfortran -m64 TEST_4_fortran+c_f.o TEST_4_fortran+c_c.o
./a.out
得到
测试 5. csh 测试
输入:
./TEST_csh.csh
得到:SUCCESS csh test
测试 6. perl 测试
输入:
./TEST_perl.pl
得到:SUCCESS perl test
测试 7. sh 测试
输入:
./TEST_sh.sh
得到:SUCCESS sh test
自此,全部环境测试完毕。
添加环境变量
环境安装完成后,还需要在系统中添加环境变量,下面作者展示的环境变量是全部的变量,包括后面需要添加的grib、netcdf等等依赖库的环境变量,目的在于少开几次环境变量的文本,少一点麻烦。
打开环境变量文本
输入:
sudo nano ~/.bashrc
nano是一个文本编辑器,.bashrc环境变量文本
得到:
用方向键把光标移至最底部,目前在最上面
然后在最底层复制(很多路径还不存在,没事,后面慢慢创建):
其实大致的意思就,C编译器用gcc,fortran编译器用gfortran诸如此类的东西。
export DIR=/home/(这里请输入自己的用户名文件夹)/Build_WRF/LIBRARIES
export CC=gcc
export CXX=g++
export FC=gfortran
export CFLAGS='-m64'
export F77=gfortran
export FFLAGS='-m64'
export PATH=$DIR/mpich/bin:$PATH
export PATH=$DIR/netcdf/bin:$PATH
export NETCDF=$DIR/netcdf
export JASPERLIB=$DIR/grib2/lib
export JASPERINC=$DIR/grib2/include
export LDFLAGS=-L$DIR/grib2/lib
export CPPFLAGS=-I$DIR/grib2/include
export LD_LIBRARY_PATH=$DIR/grib2/lib:$LD_LIBRARY_PATH
键入:ctrl+x 然后键入y 回车
即可退出文本编辑器。
重新生效环境变量
输入:
source ~/.bashrc
没有任何反应,但是已经执行。
自此,环境搭建完成。后续就是依赖库的安装。
小白跑WRF第二天,安装环境(各种编译器)的准备相关推荐
- 小白跑WRF第三天,安装三方依赖库
小白跑WRF第三天,安装三方依赖库 各类安装包的准备 支持库的下载 第一步:进入Build_WRF文件目录下 第二步:创建LIBRARIES文件夹 第三步:下载第三方库 支持库的安装 第一步:安装zl ...
- 小白跑WRF第六天,安装ARWpost
小白跑WRF第六天,安装ARWpost 一.ARWpost简介 二.下载和安装ARWpos_V3 第一步.进入Build_WRF文件夹 第二步.下载ARWpos_V3 第三步.解压ARWpos安装包 ...
- 小白跑deep snake(巨详细)
** 小白跑deep snake项目碰到的坑 ** 照着网上这篇博客:CVPR2020分割算法Deep Snake的配置跑程序 中间碰到了大大小小的坑,在各种百度中最后还是运行出来了.写这篇文章就是想 ...
- 精品微信小程序校园第二课堂在线学习网+后台系统|前后分离VUE
<微信小程序校园第二课堂+后台管理系统|前后分离VUE>该项目含有源码.论文等资料.配套开发软件.软件安装教程.项目发布教程等 本系统包含微信小程序前台和Java做的后台管理系统,该后台采 ...
- 微信小程序(第二十四章)- 数据交互前置
微信小程序(第二十四章)- 数据交互前置 讲解微信小程序前置的原因 参考文档 理解微信小程序 小程序简介 作用 提问 针对提问--uni-app介绍 小程序和普通网页开发的区别 小程序代码构成 文件个 ...
- 自学微信小程序开发第二天-事件处理、数据流
自学微信小程序开发第二天-事件处理.数据流 事件处理 绑定冒泡事件 阻止冒泡事件 互斥事件 事件传参 事件对象的属性 数据流 实例:登录页面案例 之前学习了微信小程序开发的相关环境,测试了小程序开发工 ...
- 微信小程序(第二十三章)- 注册页面的实现
微信小程序(第二十三章)- 注册页面的实现 页面实现 页面实现 基本和登录页面一样. 代码如下: <!--定义form组件--> <form bindsubmit="toR ...
- 微信小程序(第二十二章)- 表单数据提交
微信小程序(第二十二章)- 表单数据提交 问题 实现步骤 问题 什么时候(怎样)提交数据? 当点击 form 表单中 form-type 为 submit 的 button 组件时,会将表单组件中的 ...
- 微信小程序开发第二弹
1.关于工具 微信官方提供了开发者工具,集成了开发调试.代码编辑及程序发布等功能.具体的文档在这里:微信官方文档,文档里面包含了该工具的基本操作,接下来就是下载工具了. 2.下载完工具之后,我们就可以 ...
最新文章
- 截断句子取前k个单词
- PyTorch中的数据输入和预处理
- 使用JMH做Java微基准测试
- ORA-16198: LGWR received timedout error from KSR
- php excel下载打不开了,php下载excel无法打开的解决方法
- DB2临时表空间的作用
- val_loss突然变很大_有没有那么一瞬间,你突然觉得释然了?
- XMLHttpRequest对象AJAX技术的基本使用
- WINDOWS2008网络负载平衡群集(NLB)完全攻略
- LeetCode 40. 组合总和 II(回溯)
- 《30天自制操作系统》03_day_学习笔记
- 存储过程,是否有查看所有项目功能
- OpenJDK8编译之后,缺少com.sun.tools.javac.Main怎么办
- 迅为IMX6ULL开发板Linux系统移植-NXP官方Linux源码编译
- 传输线变压器设计原理
- uni-app在华为应用市场上架审核无法通过,涉及个人信息:IMEI用户数据收集问题
- HTML5+CSS大作业——蓝色的异清轩个人博客(6页) 个人博客模板源码异清轩博客
- 20道大厂真实面试题,答出一半以上的都是高手
- SQLserver2008R2详细安装教程
- DRF学习之短信验证的实现用户注册(十二)