我试图编译一个文件的示例。https://github.com/ljdursi/coarray-examples编译的命令是:
mpifort diffusion/diffusion-coarray.f90 -fcoarray=lib -o diffusion/diffusion-coarray -L ${PATH_TO_OPENCOARRAY_LIB} -lcaf_mpi我已经使用OpenCoarrays安装了spack,但是有一个错误:
/usr/bin/ld: cannot find -lcaf_mpi
collect2: error: ld returned 1 exit status如果没有-lcaf_mpi,错误是:
/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'问题出在哪里?
发布于 2018-04-01 20:56:44
谢谢你帮忙。我已经解决了问题。如果有人感兴趣,以下是我的解决方案: 1.按照他们的说明安装Linuxbrew:
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"' >>~/.profilebrew install opencoarrays现在我们可以用caf和cafrun编译文件了caf fname.f90 -o test.execafrun -np (numimages) test.exe希望它能对某人有所帮助!我的操作系统是Ubuntu16.04.4LTS,gfortran:GNUFortran5.4.0 20160609,因此其他必要的工具(例如,编译器caf和启动程序cafrun是OpenCoarrays包的一部分)将按照指令安装。
https://stackoverflow.com/questions/49597207
复制相似问题