小白跑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


下载测试文件有三种方式

  1. 利用Linux命令下载。
  2. 进入网站https://www2.mmm.ucar.edu/wrf/OnLineTutorial/compile_tutorial/tar_files/直接下载。
  3. 留下邮箱,作者给你发。

这里展示第一种
输入命令:

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第二天,安装环境(各种编译器)的准备相关推荐

  1. 小白跑WRF第三天,安装三方依赖库

    小白跑WRF第三天,安装三方依赖库 各类安装包的准备 支持库的下载 第一步:进入Build_WRF文件目录下 第二步:创建LIBRARIES文件夹 第三步:下载第三方库 支持库的安装 第一步:安装zl ...

  2. 小白跑WRF第六天,安装ARWpost

    小白跑WRF第六天,安装ARWpost 一.ARWpost简介 二.下载和安装ARWpos_V3 第一步.进入Build_WRF文件夹 第二步.下载ARWpos_V3 第三步.解压ARWpos安装包 ...

  3. 小白跑deep snake(巨详细)

    ** 小白跑deep snake项目碰到的坑 ** 照着网上这篇博客:CVPR2020分割算法Deep Snake的配置跑程序 中间碰到了大大小小的坑,在各种百度中最后还是运行出来了.写这篇文章就是想 ...

  4. 精品微信小程序校园第二课堂在线学习网+后台系统|前后分离VUE

    <微信小程序校园第二课堂+后台管理系统|前后分离VUE>该项目含有源码.论文等资料.配套开发软件.软件安装教程.项目发布教程等 本系统包含微信小程序前台和Java做的后台管理系统,该后台采 ...

  5. 微信小程序(第二十四章)- 数据交互前置

    微信小程序(第二十四章)- 数据交互前置 讲解微信小程序前置的原因 参考文档 理解微信小程序 小程序简介 作用 提问 针对提问--uni-app介绍 小程序和普通网页开发的区别 小程序代码构成 文件个 ...

  6. 自学微信小程序开发第二天-事件处理、数据流

    自学微信小程序开发第二天-事件处理.数据流 事件处理 绑定冒泡事件 阻止冒泡事件 互斥事件 事件传参 事件对象的属性 数据流 实例:登录页面案例 之前学习了微信小程序开发的相关环境,测试了小程序开发工 ...

  7. 微信小程序(第二十三章)- 注册页面的实现

    微信小程序(第二十三章)- 注册页面的实现 页面实现 页面实现 基本和登录页面一样. 代码如下: <!--定义form组件--> <form bindsubmit="toR ...

  8. 微信小程序(第二十二章)- 表单数据提交

    微信小程序(第二十二章)- 表单数据提交 问题 实现步骤 问题 什么时候(怎样)提交数据? 当点击 form 表单中 form-type 为 submit 的 button 组件时,会将表单组件中的 ...

  9. 微信小程序开发第二弹

    1.关于工具 微信官方提供了开发者工具,集成了开发调试.代码编辑及程序发布等功能.具体的文档在这里:微信官方文档,文档里面包含了该工具的基本操作,接下来就是下载工具了. 2.下载完工具之后,我们就可以 ...

最新文章

  1. 截断句子取前k个单词
  2. PyTorch中的数据输入和预处理
  3. 使用JMH做Java微基准测试
  4. ORA-16198: LGWR received timedout error from KSR
  5. php excel下载打不开了,php下载excel无法打开的解决方法
  6. DB2临时表空间的作用
  7. val_loss突然变很大_有没有那么一瞬间,你突然觉得释然了?
  8. XMLHttpRequest对象AJAX技术的基本使用
  9. WINDOWS2008网络负载平衡群集(NLB)完全攻略
  10. LeetCode 40. 组合总和 II(回溯)
  11. 《30天自制操作系统》03_day_学习笔记
  12. 存储过程,是否有查看所有项目功能
  13. OpenJDK8编译之后,缺少com.sun.tools.javac.Main怎么办
  14. 迅为IMX6ULL开发板Linux系统移植-NXP官方Linux源码编译
  15. 传输线变压器设计原理
  16. uni-app在华为应用市场上架审核无法通过,涉及个人信息:IMEI用户数据收集问题
  17. HTML5+CSS大作业——蓝色的异清轩个人博客(6页) 个人博客模板源码异清轩博客
  18. 20道大厂真实面试题,答出一半以上的都是高手
  19. SQLserver2008R2详细安装教程
  20. DRF学习之短信验证的实现用户注册(十二)

热门文章

  1. Largest Common Submatrix
  2. html5 云朵飘动效果,canvas作图飘动的云朵
  3. Linux重定向与管道符
  4. PPT制作——快捷键
  5. 2021百度之星初赛 A迷失(DP+flody+二进制优化)
  6. 数据仓库——数据重刷机制
  7. 字节跳动CEO张一鸣炮轰HR
  8. [SDOI2017]苹果树 题解
  9. GBase产品学习-where和having用法区别
  10. 宏碁非凡pro 2023款参数 评测 宏碁非凡pro 2023款值得买吗