当我编译 xhpl 时,我总是收到错误消息:./xhpl:加载共享库时出错:libdgemm.so.1:无法打开共享对象文件:没有这样的文件或目录
当我输入 ldd xhpl 时:
linux-vdso.so.1 (0x0000007f885e5000)
libdgemm.so.1 => not found
libcudart.so.10.2 => /usr/local/cuda-10.2/targets/aarch64-linux/lib/libcudart.so.10.2 (0x0000007f884db000)
libcublas.so.10 => /usr/lib/aarch64-linux-gnu/libcublas.so.10 (0x0000007f837fd000)
libmpi.so.12 => /opt/mpich/lib/libmpi.so.12 (0x0000007f834f5000)
libgomp.so.1 => /usr/lib/aarch64-linux-gnu/libgomp.so.1 (0x0000007f834b8000)
libpthread.so.0 => /lib/aarch64-linux-gnu/libpthread.so.0 (0x0000007f8348c000)
libc.so.6 => /lib/aarch64-linux-gnu/libc.so.6 (0x0000007f83333000)
/lib/ld-linux-aarch64.so.1 (0x0000007f885ba000)
libstdc++.so.6 => /usr/lib/aarch64-linux-gnu/libstdc++.so.6 (0x0000007f8319f000)
libdl.so.2 => /lib/aarch64-linux-gnu/libdl.so.2 (0x0000007f8318a000)
librt.so.1 => /lib/aarch64-linux-gnu/librt.so.1 (0x0000007f83173000)
libcublasLt.so.10 => /usr/lib/aarch64-linux-gnu/libcublasLt.so.10 (0x0000007f811ad000)
libm.so.6 => /lib/aarch64-linux-gnu/libm.so.6 (0x0000007f810f3000)
libxml2.so.2 => /usr/lib/aarch64-linux-gnu/libxml2.so.2 (0x0000007f80f53000)
libgcc_s.so.1 => /lib/aarch64-linux-gnu/libgcc_s.so.1 (0x0000007f80f2f000)
libicuuc.so.60 => /usr/lib/aarch64-linux-gnu/libicuuc.so.60 (0x0000007f80d5b000)
libz.so.1 => /lib/aarch64-linux-gnu/libz.so.1 (0x0000007f80d2e000)
liblzma.so.5 => /lib/aarch64-linux-gnu/liblzma.so.5 (0x0000007f80cfe000)
libicudata.so.60 => /usr/lib/aarch64-linux-gnu/libicudata.so.60 (0x0000007f7f345000)
如何设置 libdgemm.so.1 的链接?我在 /home/mpiuser/hpl-2.0_FERMI_v15/src/cuda/libdgemm.so.1 中找到它
感谢你们的帮助!
答案1
ld
动态链接器在许多系统文件夹以及环境变量中包含的文件中搜索文件LD_LIBRARY_PATH
。
所以,请尝试命令
# export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/mpiuser/hpl-2.0_FERMI_v15/src/cuda
# ldd xhpl
(设置环境变量的语法在不同的 shell 中有所不同,因此请报告任何错误。)
如果您使用bash
作为登录 shell,则可以添加第一行,即
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/mpiuser/hpl-2.0_FERMI_v15/src/cuda
到您的文件~/.bashrc
(最好在最后),以便从您下次打开终端/shell 时,该变量将被正确且自动地设置。