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++

安装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.shsudo 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.gztar -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 gslwget 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_PATHsource /etc/profile //刷新配置

安装cmake

查看是否安装过cmake

cmake --version

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

wget https://github.com/Kitware/CMake/releases/download/v3.23.1/cmake-3.23.1.tar.gztar -zxvf cmake-3.23.1.tar.gzcd cmake-3.23.1./bootstrap

安装Garfield++

下载Garfield++ 源码

git clone https://gitlab.cern.ch/garfield/garfieldpp.git//添加安装路径
export GARFIELD_HOME=/root/garfielpp/garfieldpp-mastercmake $GARFIELD_HOMEsource /root/garfielpp/garfieldpp-master/install/share/Garfield/setupGarfield.shcmake -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正常运行,至此环境搭建完成。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部