我正在尝试使用g95编译器构建EXCiT!NG。它可以工作直到出现此错误:
checking for linker flag to name executables... configure: error: Could not determine flag to name executables
See `config.log' for more details.
../Make.common:107: die Regel für Ziel „lib/libFoX_common.a“ scheiterte
make[2]: *** [lib/libFoX_common.a] Fehler 1
make[2]: Verzeichnis „/home/robin/Dokumente/exciting/build/serial“ wird verlassen
Makefile:3: die Regel für Ziel „all“ scheiterte
make[1]: *** [all] Fehler 2
make[1]: Verzeichnis „/home/robin/Dokumente/exciting/build/serial“ wird verlassen
Makefile:14: die Regel für Ziel „serial“ scheiterte
make: *** [serial] Fehler 2
答案 0 :(得分:1)
我能够重现您遇到的问题,并能够成功编译EXCiT!NG。最重要的提示是您的评论中提到了xsltproc
错误。请注意,错误消息显示为:xsltproc: not found
,这意味着命令本身丢失,需要安装相关的软件包。同样,在尝试重新编译之前,必须要确保项目完全“干净”。
以下过程是在Debian(拉伸)系统上执行的,因此您需要将软件包安装命令替换为适合您系统的命令。
首先,确保所需的软件包存在:
sudo apt install build-essential make gfortran xsltproc git
需要build-essential
软件包,以便使用标准的C编译器和库。 make
是构建软件包所必需的(如EXCiT!NG README中所述),而且似乎只有gfortran
在Debian系统上可用,因此我没有使用g95
。 xsltproc
程序包提供了xsltproc
命令,以便可以编译XML库(FoX XML)。请注意,这可能是您最初提到的错误中的问题,因为您收到了以下错误输出:
../Make.common:107: die Regel für Ziel „lib/libFoX_common.a“ scheiterte
需要git
软件包,以便可以从GitHub检出源代码。
克隆源代码并进入项目目录后
git clone git@github.com:exciting/exciting.git
cd exciting/
这仅仅是运行的问题
make
,然后在菜单上选择gfortran
选项,然后回答“否”有关MPI和SMP的问题,这似乎是建议的默认答案。另外,我注意到您的错误输出中提到了“串行” make
目标
Makefile:14: die Regel für Ziel „serial“ scheiterte
因此,我认为这些也是您正在使用的设置。
此后,make
成功完成。通过
make test
不幸的是没有通过,但是错误似乎是由于行被截断所致,例如
Error: Line truncated at (1) [-Werror=line-truncation]
../../src/src_eigensystem/hmlint.f90:296:132: haaij(if1,if3,ias)=zsum+t1*apwfr(nrmt(is),1,io1,l1,ias)*apwdfr(io2,l1,ias)*1d0/(1d0-veffmt(1,nrmt(is),ias)*y00*a)
这可能是一个gfortran
问题,但是很难说。该软件可能会按预期运行;您必须通过将程序的输出与已知的DFT系统进行比较来进行测试。
请注意,构建失败后,使用
清除项目make clean
重建似乎并不想成功地构建项目。我不得不恢复到完全删除项目并从GitHub重新克隆。