1

我在构建 LSDMap(局部缩放扩散图)时遇到未定义的参考错误。哪些库包含缺少的引用?

demo@argo-2 LSDMap]$ make
mpifort -O3 -ffree-line-length-none   src/p_wlsdmap.o -o p_wlsdmap -L/home/demo/LSDMap -lparpack_LINUX -larpack_LINUX 
/home/demo/LSDMap/libparpack_LINUX.a(pdmout.o): In function `pdmout_':
pdmout.f:(.text+0x41): undefined reference to `blacs_gridinfo_'
/home/demo/LSDMap/libparpack_LINUX.a(pdsaupd.o): In function `pdsaupd_':
pdsaupd.f:(.text+0x678): undefined reference to `blacs_gridinfo_'
/home/demo/LSDMap/libparpack_LINUX.a(pdlamch.o): In function `pdlamch_':
pdlamch.f:(.text+0xf4): undefined reference to `dgamx2d_'
pdlamch.f:(.text+0x197): undefined reference to `dgamn2d_'
/home/demo/LSDMap/libparpack_LINUX.a(pdnorm2.o): In function `pdnorm2_':
pdnorm2.f:(.text+0x8f): undefined reference to `dgamx2d_'
pdnorm2.f:(.text+0x116): undefined reference to `dgsum2d_'
/home/demo/LSDMap/libparpack_LINUX.a(pivout.o): In function `pivout_':
pivout.f:(.text+0x3a): undefined reference to `blacs_gridinfo_'
/home/demo/LSDMap/libparpack_LINUX.a(pdvout.o): In function `pdvout_':
pdvout.f:(.text+0x3a): undefined reference to `blacs_gridinfo_'
/home/demo/LSDMap/libparpack_LINUX.a(pdsaup2.o): In function `pdsaup2_':
pdsaup2.f:(.text+0x11b9): undefined reference to `dgsum2d_'
/home/demo/LSDMap/libparpack_LINUX.a(pdgetv0.o): In function `pdgetv0_':
pdgetv0.f:(.text+0x2f8): undefined reference to `dgsum2d_'
pdgetv0.f:(.text+0x449): undefined reference to `dgsum2d_'
pdgetv0.f:(.text+0x609): undefined reference to `dgsum2d_'
/home/demo/LSDMap/libparpack_LINUX.a(pdsaitr.o): In function `pdsaitr_':
pdsaitr.f:(.text+0x77b): undefined reference to `dgsum2d_'
/home/demo/LSDMap/libparpack_LINUX.a(pdsaitr.o):pdsaitr.f:(.text+0x84f): more undefined references to `dgsum2d_' follow
/home/demo/LSDMap/libparpack_LINUX.a(pdlarnv.o): In function `pdlarnv_':
pdlarnv.f:(.text+0x38): undefined reference to `blacs_gridinfo_'
pdlarnv.f:(.text+0xb7): undefined reference to `igsum2d_'
/home/demo/LSDMap/libarpack_LINUX.a(second.o): In function `second_':
second.f:(.text+0x11): undefined reference to `etime_'
/home/demo/LSDMap/libarpack_LINUX.a(xerbla.o): In function `xerbla_':
xerbla.f:(.text+0x18): undefined reference to `s_wsfe'
xerbla.f:(.text+0x2f): undefined reference to `do_fio'
xerbla.f:(.text+0x46): undefined reference to `do_fio'
xerbla.f:(.text+0x50): undefined reference to `e_wsfe'
xerbla.f:(.text+0x64): undefined reference to `s_stop'
collect2: error: ld returned 1 exit status
make: *** [p_wlsdmap] Error 1
4

1 回答 1

1

他们来自BLACS。注意blacs_gridinfo_,一个简单的谷歌搜索可以识别其他的(如google.com/search?q=pdlarnv&oq=pdlarnv)也来自 BLACS 或 ARPACK。

Etime() 是某些编译器( https://gcc.gnu.org/onlinedocs/gfortran/ETIME.html )中的非标准内在函数,但您的编译器不知道它。您将不得不找到一些替代品。

一般来说,我建议您使用您喜欢的搜索引擎搜索不带下划线的缺失名称,并且找到相应的库应该不难。

于 2015-08-13T21:48:22.513 回答