尝试安装天体物理学代码 (HARM),但在运行“make”命令时遇到问题

尝试安装天体物理学代码 (HARM),但在运行“make”命令时遇到问题

这是安装指南:

https://github.com/atchekho/harmpi/blob/master/tutorial.md

我得到这个结果make clean

/bin/rm -f *.o *.il
/bin/rm -f harm image_interp 

但是,当我尝试时make

//lib/x86_64-linux-gnu/libm.so.6: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
makefile:109: recipe for target 'harm' failed
make: *** [harm] Error 1

我已经使用本指南安装了 Open-MPIhttp://lsi.ugr.es/jmantas/pdp/ayuda/datos/instalaciones/Install_OpenMPI_en.pdf

我无法安装,所以libopenmpi-dbg我安装了libopenmpi2libopenmpi1.3

不知道这是否重要

我在 GCC 版本上得到了以下结果:

gcc (Ubuntu 7.4.0-1ubuntu1~18.04) 7.4.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

答案1

错误消息

//lib/x86_64-linux-gnu/libm.so.6: error adding symbols: DSO missing from command line

意味着链接器无法从标准数学库中找到符号:它知道它们应该在哪里,并且-lm在命令行上期望一个链接器指令,但没有找到。

如果您查看所提供的makefile,您会发现在使用 MPI 构建时,关于适当的链接器标志有一些来回:

ifeq ($(USEMPI),1)
EXTRALIBS= #-lm #-lmpi
EXTRACCFLAGS=-DMPI
CC=mpicc #/usr/local/bin/mpicc
else
EXTRALIBS = -lm
EXTRACCFLAGS =
endif

在某个时候,软件作者肯定认为libm在这种情况下不需要链接。你可以在命令行上推翻该决定,如下所示

make EXTRALIBS=-lm

可能会出现许多您可以忽略的编译器警告。

相关内容