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
遇到的问题
- 在运行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正常运行,至此环境搭建完成。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
