我在 16.04。当我
sudo apt-get 安装 mpich
并检查 lib 目录
/usr/lib/mpich
它包含预期的包含目录,但其中包含 lib 目录:
/usr/lib/mpich/lib
是指向以下内容的符号链接:
/usr/lib/x86_64-linux-gnu
据我所知,没有 lib 文件,而且我无法编译代码,因为它找不到 mpich 库。
/usr/lib/mpich$ readlink -f lib
返回:
/usr/lib/x86_64-linux-gnu
以下是编译和链接命令:
ifort -warn none -O2 -I/usr/include/mpich/ -c bound.F90 -o bound.o
ifort-o 边界.o-lmpi
错误是:
bounding.F90:(.text+0xaa): 对“mpi_sendrecv_”未定义引用
链接目录是
/usr/include/mpich/lib
答案1
该mpich
软件包仅包含运行 MPICH 程序所需的程序二进制文件。
您将需要安装libmpich-dev
包含 MPICH 头和静态库的软件包,以及构建 MPICH 程序所需的编译器包装器。
根据您提供的错误消息,问题不在于mpich
安装不正确,而在于您未能链接相关函数所需的库,这似乎是libmpichfort
即你需要添加
-lmpichfort
到您的链接命令。