编译器

编译器


gcc和ifort编译器都是开发人员常用的。

ifort,即Intel Fortran Compiler的简称。Windows下的ifort是收费的,但是在Linux系统下提供免费的ifort。

Intel® oneAPI Toolkits - Free for All Developers



Ubuntu系统安装ifort编译器的方法


在Ubuntu下安装ifort之前,需要先安装一些软件包
sudo apt-get install build-essential
sudo apt-get install g++
sudo apt-get install gcc-multilib
sudo apt-get install rpm
sudo apt-get install openjdk-6-jre-headless
sudo apt-get install libstdc++6

将下载下来的文件解压 tar -zxvf l...tgz
安装
进入上面解压过后的文件夹,sudo install.sh
安装一共分六步,根据自己的需要选择设置信息,一般一路enter下去即可。
修改运行环境信息
将source /opt/intel/bin/ifortvars.sh ia32 添加到 ~/.bashrc文件里
检测安装是否成功
ifort -v 或 ifort -V



根据官网连接hpc)安装:

安装方式有以下几种:

What's Included in the Intel oneAPI Base Toolkit for Linux*
Intel® oneAPI Collective Communications Library
Intel® oneAPI Data Analytics Library
Intel® oneAPI Deep Neural Network Library
Intel® oneAPI DPC++/C++ Compiler
Intel® oneAPI DPC++ Library
Intel® oneAPI Math Kernel Library
Intel® oneAPI Threading Building Blocks
Intel® oneAPI Video Processing Library
Intel® Advisor
Intel® Distribution for GDB*
Intel® Distribution for Python* (separate download required)
Intel® DPC++ Compatibility Tool
Intel® Integrated Performance Primitives
Intel® VTune™ Profiler
下载方式一:直接下载

可以直接下载安装文件(sh文件),可以不注册,直接点击下图红框内链接即可下载:

下载方式二:wget下载

wget https://registrationcenter-download.intel.com/akdlm/irc_nas/19084/l_HPCKit_p_2023.0.0.25400.sh

sh ./l_HPCKit_p_2023.0.0.25400.sh

教程说需要先安装BaseKit:

wget https://registrationcenter-download.intel.com/akdlm/irc_nas/19079/l_BaseKit_p_2023.0.0.25537.sh
sh ./l_BaseKit_p_2023.0.0.25537.sh

安装完之后,即可看到安装的内容:

安装过程需要有不少的选择,基本都是选择默认选项即可。安装完之后一定要在环境变量里面设置: vi ~/.bashrc
# intel compiller
source /opt/intel/oneapi/setvars.sh --force
可以使用find命令查找setvars.sh(见下图)

还要使用命令:source ~/.bashrc # 使环境变量生效
使用命令检查ifort安装状态:ifort -v # 出现对应版本号即成功


输入ifort,原来出错:

ifort: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by ifort)

更新了,见下第二张图,多了红色框内容:

按照教程,后来出错:

ifort: error while loading shared libraries: libstdc++.so.6: wrong ELF class: ELFCLASS32

感觉应该是cp的时候将32位的拷贝过去有问题,于是重新操作:
strings /usr/lib64/libstdc++.so.6 | grep GLIBC
find / -name "libstdc++.so*"
cp /opt/intel/oneapi/inspector/2023.0.0/lib64/libstdc++.so.6.0.22 /usr/lib64
cd /usr/lib64
rm -rf libstdc++.so.6
ln -s libstdc++.so.6.0.22 libstdc++.so.6
strings /usr/lib64/libstdc++.so.6 | grep GLI

谁知道,之后连ifort都找不到了!?其实是输入命令有问题,其实已经成功了!

ifort -V
Intel(R) Fortran Intel(R) 64 Compiler Classic for applications running on Intel(R) 64, Version 2021.8.0 Build 20221119_000000
Copyright (C) 1985-2022 Intel Corporation.  All rights reserved.


WRF的需要编译器:gfortran、gcc、g++以及cpp。

gcc 是以 GPL 许可证所发行的自由软件,也是 GNU 计划的关键部分。GCC 的初衷是为 GNU 操作系统专门编写一款编译器,现已被大多数类 Unix 操作系统(如 Linux、BSD、Mac OS X 等)采纳为标准的编译器,甚至在微软的 Windows 上也可以使用 GCC。GCC 支持多种计算机体系结构芯片,如 x86、ARM、MIPS 等,并已被移植到其他多种硬件平台。 GCC 原名为 GNU C 语言编译器(GNU C Compiler),只能处理 C 语言。但其很快扩展,变得可处理 C++,后来又扩展为能够支持更多编程语言,如 Fortran、Pascal、Objective -C、Java、Ada、Go 以及各类处理器架构上的汇编语言等,所以改名 GNU 编译器套件(GNU Compiler Collection)。

gfortran是Fortran 95 编译器,支持Fortran95和一部分Fortran2003的功能。gfortran是gcc-4.0及之后版本的一部分,而g77是gcc-4.0之前版本的一部分。g95是一个基于gcc的Fortran编译器,它不是gcc的一部分。

gccg++分别是GNU的c和c++编译器。

cpp应该是c++编译器,p即plus,+号。由C++代码文件生成可执行文件的过程如下:



聊聊编译器和解释器的区别
Centos6.7下安装Intel 的icc / ifort 编译器(非商业版)
Centos7中ifort和netcdf-fortran环境安装
Intel® oneAPI Base Toolkit+Intel® oneAPI HPC Toolkit安装教程+环境变量设置
Intel编译器安装WRF-CMAQ
解决类似/usr/lib64/libstdc++.so.6:version `GLIBCXX_3.4.21` not found的问题
Intel oneAPI HPC Toolkit 安装教程(Linux)





BypInformation