系统:
Ubuntu 22.04.1 LTS (Jammy Jellyfish) 64-bit
Kernel Linux 5.15.0-46-generic x86_64
MATE 1.26.0已安装的软件包:
gfortran --> gfortran-11
libgfortran-11-dev
libcaf-mpich-3
libcaf-openmpi-3
libcoarrays-dev
libcoarrays-mpich-dev
libcoarrays-openmpi-dev试图通过CoArrayFortran编译caf caf01.f90程序会导致错误
f951: Warning: Nonexistent include directory ‘/usr/lib/x86_64-linux-gnu/openmpi/lib/../../fortran/gfortran-mod-15/openmpi’ [-Wmissing-include-dirs]
/usr/bin/ld: -lmpi_usempif08 kann nicht gefunden werden: Datei oder Verzeichnis nicht gefunden
/usr/bin/ld: -lmpi_usempi_ignore_tkr kann nicht gefunden werden: Datei oder Verzeichnis nicht gefunden
/usr/bin/ld: -lmpi_mpifh kann nicht gefunden werden: Datei oder Verzeichnis nicht gefunden
/usr/bin/ld: -lopen-rte kann nicht gefunden werden: Datei oder Verzeichnis nicht gefunden
/usr/bin/ld: -lopen-pal kann nicht gefunden werden: Datei oder Verzeichnis nicht gefunden
/usr/bin/ld: -lhwloc kann nicht gefunden werden: Datei oder Verzeichnis nicht gefunden
/usr/bin/ld: -levent_core kann nicht gefunden werden: Datei oder Verzeichnis nicht gefunden
/usr/bin/ld: -levent_pthreads kann nicht gefunden werden: Datei oder Verzeichnis nicht gefunden
collect2: error: ld returned 1 exit status
Error: comand:
`/usr/bin/mpif90.openmpi -I/usr/lib/x86_64-linux-gnu/fortran/ -fcoarray=lib caf01.f90 /usr/lib/x86_64-linux-gnu/open-coarrays/openmpi/lib/libcaf_openmpi.a`
failed to compile.有一个目录/usr/lib/x86_64-linux-gnu/openmpi/lib/../../fortran/gfortran-mod-15/mpich/,也许可以用它来代替,但是如何告诉编译器呢?
Edit1:
$ LANG="C" caf caf01.f90
f951: Warning: Nonexistent include directory '/usr/lib/x86_64-linux-gnu/openmpi/lib/../../fortran/gfortran-mod-15/openmpi' [-Wmissing-include-dirs]
/usr/bin/ld: cannot find -lmpi_usempif08: No such file or directory
/usr/bin/ld: cannot find -lmpi_usempi_ignore_tkr: No such file or directory
/usr/bin/ld: cannot find -lmpi_mpifh: No such file or directory
/usr/bin/ld: cannot find -lopen-rte: No such file or directory
/usr/bin/ld: cannot find -lopen-pal: No such file or directory
/usr/bin/ld: cannot find -lhwloc: No such file or directory
/usr/bin/ld: cannot find -levent_core: No such file or directory
/usr/bin/ld: cannot find -levent_pthreads: No such file or directory
collect2: error: ld returned 1 exit status
Error: comand:
`/usr/bin/mpif90.openmpi -I/usr/lib/x86_64-linux-gnu/fortran/ -fcoarray=lib caf01.f90 /usr/lib/x86_64-linux-gnu/open-coarrays/openmpi/lib/libcaf_openmpi.a`
failed to compile.编译命令为caf:/usr/bin/caf -> /etc/ -> /caf -> /usr/bin/caf.openmpi -> /etc/->/caf-openmpi->->。在最后一个文件中,有几行
# Always make extensions module available, user can choose whether to `use` it or not
caf_pre_flags=("${mod_dir_flag}/usr/lib/x86_64-linux-gnu/fortran/")但没有包括gfortran-mod-15在内的线路。
Edit2:
我做了一个(符号)链接
/usr/lib/x86_64-linux-gnu/openmpi/lib/../../fortran/gfortran-mod-15/openmpi/
->
/usr/lib/x86_64-linux-gnu/openmpi/lib/../../fortran/gfortran-mod-15/mpich/。
关于不存在的包含目录的警告已经消失,但其他错误仍然存在:
LANG="C" caf caf01.f90
/usr/bin/ld: cannot find -lmpi_usempif08: No such file or directory
/usr/bin/ld: cannot find -lmpi_usempi_ignore_tkr: No such file or directory
/usr/bin/ld: cannot find -lmpi_mpifh: No such file or directory
/usr/bin/ld: cannot find -lopen-rte: No such file or directory
/usr/bin/ld: cannot find -lopen-pal: No such file or directory
/usr/bin/ld: cannot find -lhwloc: No such file or directory
/usr/bin/ld: cannot find -levent_core: No such file or directory
/usr/bin/ld: cannot find -levent_pthreads: No such file or directory
collect2: error: ld returned 1 exit status
Error: comand:
`/usr/bin/mpif90.openmpi -I/usr/lib/x86_64-linux-gnu/fortran/ -fcoarray=lib caf01.f90 /usr/lib/x86_64-linux-gnu/open-coarrays/openmpi/lib/libcaf_openmpi.a`
failed to compile.发布于 2022-08-19 10:53:03
总结“使用CoArrays和gfortran at Ubuntu 22.04”对我来说是这样的:
安装软件包:
sudo apt-get install gfortran libcoarrays-dev libcoarrays-openmpi-dev libcaf-openmpi-3汇编:
gfortran -fcoarray=lib coarray-fortran-program.f90 -lcaf_openmpi跑步:
cafrun -n 3 a.out(-n 3=图像数量)或有选项
cafrun -n 3 --oversubscribe a.out(如果没有此选项,则为错误)。咖啡厅可能会被mpirun或mpiexec取代。
https://stackoverflow.com/questions/73393766
复制相似问题