首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Fortran Coarray无法编译

Fortran Coarray无法编译
EN

Stack Overflow用户
提问于 2018-04-01 10:42:17
回答 1查看 1.1K关注 0票数 0

我试图编译一个文件的示例。https://github.com/ljdursi/coarray-examples编译的命令是:

代码语言:javascript
复制
mpifort diffusion/diffusion-coarray.f90 -fcoarray=lib -o diffusion/diffusion-coarray -L ${PATH_TO_OPENCOARRAY_LIB} -lcaf_mpi

我已经使用OpenCoarrays安装了spack,但是有一个错误:

代码语言:javascript
复制
/usr/bin/ld: cannot find -lcaf_mpi
collect2: error: ld returned 1 exit status

如果没有-lcaf_mpi,错误是:

代码语言:javascript
复制
/tmp/ccOdrmfc.o: In function `MAIN__':
diffusion-coarray.f90:(.text+0x32): undefined reference to `_gfortran_caf_num_images'
diffusion-coarray.f90:(.text+0x4c): undefined reference to `_gfortran_caf_this_image'
diffusion-coarray.f90:(.text+0x66): undefined reference to `_gfortran_caf_this_image'
diffusion-coarray.f90:(.text+0x77): undefined reference to `_gfortran_caf_num_images'
diffusion-coarray.f90:(.text+0x8a): undefined reference to `_gfortran_caf_num_images'
diffusion-coarray.f90:(.text+0xaa): undefined reference to `_gfortran_caf_this_image'
diffusion-coarray.f90:(.text+0xbd): undefined reference to `_gfortran_caf_this_image'
diffusion-coarray.f90:(.text+0xf4): undefined reference to `_gfortran_caf_num_images'

问题出在哪里?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-01 20:56:44

谢谢你帮忙。我已经解决了问题。如果有人感兴趣,以下是我的解决方案: 1.按照他们的说明安装Linuxbrew:

代码语言:javascript
复制
sh -c "$(curl -fsSL https://raw.githubusercontent.com/Linuxbrew/install/master/install.sh)"

test -d ~/.linuxbrew && PATH="$HOME/.linuxbrew/bin:$HOME/.linuxbrew/sbin:$PATH"
test -d /home/linuxbrew/.linuxbrew && PATH="/home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin:$PATH"
test -r ~/.bash_profile && echo "export PATH='$(brew --prefix)/bin:$(brew --prefix)/sbin'":'"$PATH"' >>~/.bash_profile
echo "export PATH='$(brew --prefix)/bin:$(brew --prefix)/sbin'":'"$PATH"' >>~/.profile
  1. 安装OpenCoarrays库brew install opencoarrays现在我们可以用cafcafrun编译文件了
  2. 编译..exe文件caf fname.f90 -o test.exe
  3. 运行程序cafrun -np (numimages) test.exe

希望它能对某人有所帮助!我的操作系统是Ubuntu16.04.4LTS,gfortran:GNUFortran5.4.0 20160609,因此其他必要的工具(例如,编译器caf和启动程序cafrun是OpenCoarrays包的一部分)将按照指令安装。

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

https://stackoverflow.com/questions/49597207

复制
相关文章

相似问题

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