linux - 对 `blacs_gridinfo_' 的 undefined reference

标签 linux linker fortran gfortran arpack

我在构建 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

最佳答案

它们来自BLACS .请注意 blacs_gridinfo_ 并通过简单的谷歌搜索识别出其他信息(如 google.com/search?q=pdlarnv&oq=pdlarnv )也来自 BLACS 或 ARPACK。

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

一般情况下,我建议大家使用自己喜欢的搜索引擎搜索缺少的不带下划线的名称,应该不难找到对应的库。

关于linux - 对 `blacs_gridinfo_' 的 undefined reference ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31997405/

相关文章:

linux - 进程创建时的 Linux 进程内核堆栈状态是什么?

linux - Jenkins ssh 远程主机和奴隶上的 key 文件路径差异

linux - 在运行程序期间如何对丢失的 TCP 连接进行故障转移?

c++:头函数未从库正确链接到exe

c++ - C++ 框架测试应用程序的链接器错误

variables - Fortran 函数/子程序中的任意变量/数组类型

linux - Perl 的 NET :SSH2 local socket

linker - elf 文件中段的虚拟和物理地址

module - 模块中的意外赋值语句

python - fortran 库的 python 结构内部和外部 c_char 数组之间的区别