栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Ubuntu 20下安装Garfield++

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Ubuntu 20下安装Garfield++

前言

ps:本文所有安装是在root用户下操作的,普通用户安装时请注意相应的安装路径*

检查系统并更新
sudo apt update
sudo apt upgrade

安装c++ 11
  • 检查Ubuntu现在的g++版本
gcc -v
g++ -v

到gcc官提供的镜像服务器中去下载源码。镜像地址

wget http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-11.3.0/gcc-11.3.0.tar.gz
tar -xzvf gcc-11.3.0.tar.gz
cd gcc-11.3.0
sudo ./configure --prefix=/usr/local/gcc-11.3.0 --enable-threads=posix --disable-checking --disable-multilib --enable-languages=c,c++ --with-gmp=$HOME/local/ --with-mpfr=$HOME/local/ --with-cgal=$HOME/local/
make 
sudo make install
  • gcc多版本切换

查看系统已安装的 GCC 版本

ls -l /usr/bin/gcc*

设置各版本的gcc权重

sudo update-alternatives --install /usr/bin/gcc gcc /usr/local/gcc-11.3.0/bin/gcc 40
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 20

设置g++版本优先级

sudo update-alternatives  --install /usr/bin/g++ g++ /usr/local/gcc-11.3.0/bin/g++ 40
sudo update-alternatives  --install /usr/bin/g++ g++ /usr/bin/g++-8 50
sudo update-alternatives  --install /usr/bin/g++ g++ /usr/bin/g++-9 20

切换

sudo update-alternatives --config gcc
sudo update-alternatives --config g++

参考:
https://zhuanlan.zhihu.com/p/261001751
https://zhuanlan.zhihu.com/p/377881136

安装Fortran compiler
  • 安装所需环境
    在进行ifort安装前,ubuntu内需要有一些基本库的,不然安装会不成功,在终端中使用以下两条语句完成基本库的配置:
sudo apt update
sudo apt -y install gcc g++ cmake pkg-config build-essential 
  • 安装Ifort

下载ifort在线安装包

wget https://registrationcenter-download.intel.com/akdlm/irc_nas/18703/l_fortran-compiler_p_2022.1.0.134.sh

sudo bash l_fortran-compiler_p_2022.1.0.134.sh

执行bash 命令后 会弹出图形化安装界面,只需要一步一步往下安装就好了

  • 设置环境变量

root 安装路径

/opt/intel/oneapi/
普通用户安装路径
~/intel/oneapi/

设置环境变量:在~/.bashrc中添加

source /setvars.sh

具体方法为:在home目录下按ctrl+h打开隐藏文件,在.bashrc最后另起一行添加

source /opt/intel/oneapi/setvars.sh

(这里我是以超级管理员安装的)

最后一步测试:新打开终端输入ifort -v,有ifort版本号提示即表示安装成功。

参考:
https://www.bilibili.com/read/cv15164219?spm_id_from=333.788.b_636f6d6d656e74.6

安装ROOT 6
  • 检查安装root的环境
sudo apt update
sudo apt upgrade
sudo apt-get install cmake
sudo apt-get install build-essential binutils-gold libtool gfortran
sudo apt-get install libx11-dev libxft-dev libxext-dev libxpm-dev
sudo apt-get install freeglut3 freeglut3-dev g++ libglew-dev
sudo apt-get install libglew1.5-dev libglm-dev libssl-dev
sudo apt-get install libxi-dev libxmu-dev libftgl-dev automake
sudo apt-get install python-dev mesa-common-dev mesa-utils
sudo apt-get install libgsl-dev git
sudo apt-get install dpkg-dev binutils libpcre3-dev xlibmesa-glu-dev
sudo apt-get install libmysqlclient-dev libfftw3-dev libcfitsio-dev
sudo apt-get install graphviz-dev libavahi-compat-libdnssd-dev
sudo apt-get install libldap2-dev python-dev libxml2-dev libkrb5-dev
  • 安装root

在ROOT官网中获取要安装的Root版本路径

// 下载root
wget https://root.cern/download/root_v6.26.02.Linux-ubuntu20-x86_64-gcc9.4.tar.gz

tar -xvzf root_v6.26.02.Linux-ubuntu20-x86_64-gcc9.4.tar.g
source root/bin/thisroot.sh //解压后的root路径

将thisroot.sh(可在该目录下pwd查看绝对路径)添加到~/.bashrc 中

source /root/root/root/bin/thisroot.sh  //root用户下安装路径
安装 GSL (GNU Scientific Library)

下载安装包

cd gsl

wget https://mirrors.tuna.tsinghua.edu.cn/gnu/gsl/gsl-2.7.1.tar.gz

// 检查 编译 安装
./configure && make && make install

编译成功后,默认安装在了/usr/local下

cd /usr/local/bin
ln /usr/local/lib/libgsl.so /usr/local/lib/libgsl.so.0

编辑/etc/profile

gedit /etc/profile

在最下面加上下面一行代码

export LD_LIBRARY_PATH=/usr/local/lib: $LD_LIBRARY_PATH

source /etc/profile //刷新配置
安装cmake

查看是否安装过cmake

cmake --version

如果没有安装过,则下载源码进行安装 到官网获取最新版本下载地址

wget https://github.com/Kitware/CMake/releases/download/v3.23.1/cmake-3.23.1.tar.gz

tar -zxvf cmake-3.23.1.tar.gz

cd cmake-3.23.1

./bootstrap

安装Garfield++

下载Garfield++ 源码

git clone https://gitlab.cern.ch/garfield/garfieldpp.git

//添加安装路径
export GARFIELD_HOME=/root/garfielpp/garfieldpp-master

cmake $GARFIELD_HOME

source /root/garfielpp/garfieldpp-master/install/share/Garfield/setupGarfield.sh

cmake -DCMAKE_INSTALL_PREFIX=/home/mygarfield $GARFIELD_HOME
cmake -DCMAKE_BUILD_TYPE = RelWithDebInfo $GARFIELD_HOME
遇到的问题
  1. 在运行Example的时候 编译通过,运行是提示:version `GLIBCXX_3.4.29’ not found
  • 根据提示,搜索后 将Gcc的动态编译库修改成最新版本
find / -name "libstdc++.so*" 

// 选择最高版本的libstdc++.so.XXX 复制到/usr/lib64 下面

cp /root/gcc-11.3.0/x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.29 /usr/lib64/

//切换工作目录至/usr/lib64:
cd /usr/lib64

//删除以前的软连接
rm -rf libstdc++.so.6

//建立新的软连接
ln -s libstdc++.so.6.0.29 libstdc++.so.6

  • 重新建立软连接后,发现还是报错,怀疑库文件是否正常安装。检查/重新安装库文件
sudo apt-get update
sudo apt-get install libstdc++6 
sudo apt-get install lib32stdc++6

重新安装后lib32stdc++6,Example正常运行,至此环境搭建完成。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/893817.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号