![无法在 ubuntu 20.04 中安装 JEWEL](https://linux22.com/image/934869/%E6%97%A0%E6%B3%95%E5%9C%A8%20ubuntu%2020.04%20%E4%B8%AD%E5%AE%89%E8%A3%85%20JEWEL.png)
我正在尝试安装珠宝在 UBUNTU 20.04 上。如文档中所述,它依赖于拉美裔美国人武装部队。我已成功安装 LHAPDF,它向我显示了如下消息:
Libraries are installed in /usr/local/
但是当我尝试安装 JEWEL 时,它显示一个错误:
Cannot find -lLHAPDF
我参观过这个相关答案,但由于我不是 Linux 专家,所以不知道该怎么做。我使用了:
sudo -H nautilus
并将文件libLHAPDF.so
从复制粘贴/usr/local/lib
到/usr/lib/
。之后,我尝试make
再次运行该命令,但这次它显示了不同的错误:
$ make
gfortran -o jewel-2.2.0-vac -L/usr/local jewel-2.2.0.o medium-vac.o pythia6425mod.o meix.o -lLHAPDF
/usr/bin/ld: pythia6425mod.o: in function `pypdfu_':
/home/aritra/Project/jewel-2.2.0/pythia6425mod.f:39228: undefined reference to `structa_'
collect2: error: ld returned 1 exit status
make: *** [Makefile:10: jewel-2.2.0-vac] Error 1
有哪位专家可以帮我安装这个吗?
答案1
我建议使用来自 Ubuntu 存储库的软件包。18.04
LTS 有 LHPADF包我们可以将它们下载到Ubuntu 20.04 LTS中进行安装:
cd ~/Downloads
wget http://archive.ubuntu.com/ubuntu/pool/universe/l/lhapdf/liblhapdf0v5_5.9.1-6_amd64.deb
wget http://archive.ubuntu.com/ubuntu/pool/universe/l/lhapdf/liblhapdf-dev_5.9.1-6_amd64.deb
sudo apt-get install ./liblhapdf0v5_5.9.1-6_amd64.deb ./liblhapdf-dev_5.9.1-6_amd64.deb
然后编译JEWEL:
sudo apt-get install gfortran build-essential
cd ~/Downloads
wget https://jewel.hepforge.org/downloads/?f=jewel-2.2.0.tar.gz -O jewel-2.2.0.tar.gz
tar xvzf jewel-2.2.0.tar.gz
cd jewel-2.2.0/
make
用./jewel-2.2.0-vac
或来 使用它./jewel-2.2.0-simple
。
答案2
此问题是由 Fortran 延续中的拼写错误引起的。编辑文件 pythia6425mod.f:在第 39228 行,第 6 列应该有 &,第 9-12 列应该有 GLU),如下所示:
39227| CALL STRUCTA(XX,QQ,MASS,UPV,DNV,USEA,DSEA,STR,CHM,BOT,TOP,
39228| & GLU)
希望这可以帮助