0

我正在尝试使用 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
4

1 回答 1

1

我能够重现您所看到的问题,并且能够成功编译 EXCiT!NG。重要的提示是在您提到xsltproc错误的评论中。注意报错信息是:xsltproc: not found,表示命令本身缺失,需要安装相关包;此外,在再次尝试重新编译之前,必须小心确保项目完全“干净”。

以下过程是在 Debian (stretch) 系统上执行的,因此您需要将软件包安装命令替换为适合您系统的命令。

先决条件安装

首先,确保存在所需的包:

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 重新克隆。

于 2019-01-10T19:35:20.617 回答