首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ubuntu : f951:警告:不存在包含目录f951

Ubuntu : f951:警告:不存在包含目录f951
EN

Stack Overflow用户
提问于 2022-08-17 19:06:53
回答 1查看 251关注 0票数 0

系统:

代码语言:javascript
复制
Ubuntu 22.04.1 LTS (Jammy Jellyfish) 64-bit
Kernel Linux 5.15.0-46-generic x86_64
MATE 1.26.0

已安装的软件包:

代码语言:javascript
复制
gfortran --> gfortran-11
libgfortran-11-dev
libcaf-mpich-3
libcaf-openmpi-3
libcoarrays-dev
libcoarrays-mpich-dev
libcoarrays-openmpi-dev

试图通过CoArrayFortran编译caf caf01.f90程序会导致错误

代码语言:javascript
复制
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:

代码语言:javascript
复制
$ 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->->。在最后一个文件中,有几行

代码语言:javascript
复制
# 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/

关于不存在的包含目录的警告已经消失,但其他错误仍然存在:

代码语言:javascript
复制
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.
EN

回答 1

Stack Overflow用户

发布于 2022-08-19 10:53:03

总结“使用CoArraysgfortran at Ubuntu 22.04”对我来说是这样的:

安装软件包:

代码语言:javascript
复制
sudo apt-get install gfortran libcoarrays-dev libcoarrays-openmpi-dev libcaf-openmpi-3

汇编:

代码语言:javascript
复制
gfortran -fcoarray=lib coarray-fortran-program.f90 -lcaf_openmpi

跑步:

代码语言:javascript
复制
cafrun -n 3 a.out

(-n 3=图像数量)或有选项

代码语言:javascript
复制
cafrun -n 3 --oversubscribe a.out

(如果没有此选项,则为错误)。咖啡厅可能会被mpirun或mpiexec取代。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73393766

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档