链接器错误:/usr/bin/ld:在尝试用clang编译CUDA代码时找不到-lcudart_static
我试图按照官方文档在这里
clang++ axpy.cu -o exec --cuda-gpu-arch=sm_60 -L/usr/local/cuda -lcudart_static -ldl -lrt -pthread
给 :链接器错误和警告:
clang:警告:未知的CUDA版本。 cuda.h:cuda_version = 11060。假设最新支持的版本10.1 [-wunknown-cuda-version]
/usr/bin/ld:找不到-lcudart_static
clang:error:linker命令因出口代码1失败(使用-V查看调用)
我已安装了Clang版本11。 跑步:
nvidia-smi
我在某个地方阅读了我需要添加符号链接到libcudart文件之类的东西,如果有帮助的话。
我会在运行时得到以下输出:
ld -lcudart_static --verbose
attempt to open /usr/local/lib/x86_64-linux-gnu/libcudart_static.so failed
attempt to open /usr/local/lib/x86_64-linux-gnu/libcudart_static.a failed
attempt to open /lib/x86_64-linux-gnu/libcudart_static.so failed
attempt to open /lib/x86_64-linux-gnu/libcudart_static.a failed
attempt to open /usr/lib/x86_64-linux-gnu/libcudart_static.so failed
attempt to open /usr/lib/x86_64-linux-gnu/libcudart_static.a failed
attempt to open /usr/lib/x86_64-linux-gnu64/libcudart_static.so failed
attempt to open /usr/lib/x86_64-linux-gnu64/libcudart_static.a failed
attempt to open /usr/local/lib64/libcudart_static.so failed
attempt to open /usr/local/lib64/libcudart_static.a failed
attempt to open /lib64/libcudart_static.so failed
attempt to open /lib64/libcudart_static.a failed
attempt to open /usr/lib64/libcudart_static.so failed
attempt to open /usr/lib64/libcudart_static.a failed
attempt to open /usr/local/lib/libcudart_static.so failed
attempt to open /usr/local/lib/libcudart_static.a failed
attempt to open /lib/libcudart_static.so failed
attempt to open /lib/libcudart_static.a failed
attempt to open /usr/lib/libcudart_static.so failed
attempt to open /usr/lib/libcudart_static.a failed
attempt to open /usr/x86_64-linux-gnu/lib64/libcudart_static.so failed
attempt to open /usr/x86_64-linux-gnu/lib64/libcudart_static.a failed
attempt to open /usr/x86_64-linux-gnu/lib/libcudart_static.so failed
attempt to open /usr/x86_64-linux-gnu/lib/libcudart_static.a failed
ld: cannot find -lcudart_static
attempt to open /usr/local/lib/x86_64-linux-gnu/libcudart_static.so failed
attempt to open /usr/local/lib/x86_64-linux-gnu/cudart_static.a failed
attempt to open /lib/x86_64-linux-gnu/libcudart_static.so failed
attempt to open /lib/x86_64-linux-gnu/cudart_static.a failed
attempt to open /usr/lib/x86_64-linux-gnu/libcudart_static.so failed
attempt to open /usr/lib/x86_64-linux-gnu/cudart_static.a failed
attempt to open /usr/lib/x86_64-linux-gnu64/libcudart_static.so failed
attempt to open /usr/lib/x86_64-linux-gnu64/cudart_static.a failed
attempt to open /usr/local/lib64/libcudart_static.so failed
attempt to open /usr/local/lib64/cudart_static.a failed
attempt to open /lib64/libcudart_static.so failed
attempt to open /lib64/cudart_static.a failed
attempt to open /usr/lib64/libcudart_static.so failed
attempt to open /usr/lib64/cudart_static.a failed
attempt to open /usr/local/lib/libcudart_static.so failed
attempt to open /usr/local/lib/cudart_static.a failed
attempt to open /lib/libcudart_static.so failed
attempt to open /lib/cudart_static.a failed
attempt to open /usr/lib/libcudart_static.so failed
attempt to open /usr/lib/cudart_static.a failed
attempt to open /usr/x86_64-linux-gnu/lib64/libcudart_static.so failed
attempt to open /usr/x86_64-linux-gnu/lib64/cudart_static.a failed
attempt to open /usr/x86_64-linux-gnu/lib/libcudart_static.so failed
attempt to open /usr/x86_64-linux-gnu/lib/cudart_static.a failed
有人可以帮忙吗?
I tried to compile a axpy.cu file as specified in the official docs here:
clang++ axpy.cu -o exec --cuda-gpu-arch=sm_60 -L/usr/local/cuda -lcudart_static -ldl -lrt -pthread
But that gave a linker error and warning:
clang: warning: Unknown CUDA version. cuda.h: CUDA_VERSION=11060. Assuming the latest supported version 10.1 [-Wunknown-cuda-version]
/usr/bin/ld: cannot find -lcudart_static
clang: error: linker command failed with exit code 1 (use -v to see invocation)
I have clang version 11 installed.
On running:
nvidia-smi
I read somewhere that I need to add a symbolic link to libcudart file or something if that helps.
I get the following output on running:
ld -lcudart_static --verbose
attempt to open /usr/local/lib/x86_64-linux-gnu/libcudart_static.so failed
attempt to open /usr/local/lib/x86_64-linux-gnu/libcudart_static.a failed
attempt to open /lib/x86_64-linux-gnu/libcudart_static.so failed
attempt to open /lib/x86_64-linux-gnu/libcudart_static.a failed
attempt to open /usr/lib/x86_64-linux-gnu/libcudart_static.so failed
attempt to open /usr/lib/x86_64-linux-gnu/libcudart_static.a failed
attempt to open /usr/lib/x86_64-linux-gnu64/libcudart_static.so failed
attempt to open /usr/lib/x86_64-linux-gnu64/libcudart_static.a failed
attempt to open /usr/local/lib64/libcudart_static.so failed
attempt to open /usr/local/lib64/libcudart_static.a failed
attempt to open /lib64/libcudart_static.so failed
attempt to open /lib64/libcudart_static.a failed
attempt to open /usr/lib64/libcudart_static.so failed
attempt to open /usr/lib64/libcudart_static.a failed
attempt to open /usr/local/lib/libcudart_static.so failed
attempt to open /usr/local/lib/libcudart_static.a failed
attempt to open /lib/libcudart_static.so failed
attempt to open /lib/libcudart_static.a failed
attempt to open /usr/lib/libcudart_static.so failed
attempt to open /usr/lib/libcudart_static.a failed
attempt to open /usr/x86_64-linux-gnu/lib64/libcudart_static.so failed
attempt to open /usr/x86_64-linux-gnu/lib64/libcudart_static.a failed
attempt to open /usr/x86_64-linux-gnu/lib/libcudart_static.so failed
attempt to open /usr/x86_64-linux-gnu/lib/libcudart_static.a failed
ld: cannot find -lcudart_static
attempt to open /usr/local/lib/x86_64-linux-gnu/libcudart_static.so failed
attempt to open /usr/local/lib/x86_64-linux-gnu/cudart_static.a failed
attempt to open /lib/x86_64-linux-gnu/libcudart_static.so failed
attempt to open /lib/x86_64-linux-gnu/cudart_static.a failed
attempt to open /usr/lib/x86_64-linux-gnu/libcudart_static.so failed
attempt to open /usr/lib/x86_64-linux-gnu/cudart_static.a failed
attempt to open /usr/lib/x86_64-linux-gnu64/libcudart_static.so failed
attempt to open /usr/lib/x86_64-linux-gnu64/cudart_static.a failed
attempt to open /usr/local/lib64/libcudart_static.so failed
attempt to open /usr/local/lib64/cudart_static.a failed
attempt to open /lib64/libcudart_static.so failed
attempt to open /lib64/cudart_static.a failed
attempt to open /usr/lib64/libcudart_static.so failed
attempt to open /usr/lib64/cudart_static.a failed
attempt to open /usr/local/lib/libcudart_static.so failed
attempt to open /usr/local/lib/cudart_static.a failed
attempt to open /lib/libcudart_static.so failed
attempt to open /lib/cudart_static.a failed
attempt to open /usr/lib/libcudart_static.so failed
attempt to open /usr/lib/cudart_static.a failed
attempt to open /usr/x86_64-linux-gnu/lib64/libcudart_static.so failed
attempt to open /usr/x86_64-linux-gnu/lib64/cudart_static.a failed
attempt to open /usr/x86_64-linux-gnu/lib/libcudart_static.so failed
attempt to open /usr/x86_64-linux-gnu/lib/cudart_static.a failed
Can someone help with this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
所以我找到了解决方案。显然,接头无法找到libcudart二进制。因此,用于找到其位置的方法:
获取其路径为:(
对您来说可能有所不同)。
只是通过在编译命令中使用-l标志链接了此路径。
新命令:
So I found a solution. Apparently the linker wasnt able to locate libcudart binary. So used find to get its location:
Got its path as:
(might be different for you).
Just linked this path by using -L flag in the compilation command.
New command:
我个人认为链接无法找到“ LIB”文件夹。在x86_64体系结构中,您必须查找lib64。
因此,您的命令看起来如下:
在您的答案中,链接器找不到名为“ lib”的文件夹。因此,您需要将链接指向x86_64_lix库。这是一个不必要的步骤(根据我的说法)。
I personally think that the linked is unable to find the "lib" folder. In X86_64 architecture, you must look for lib64.
So your command will look like the following:
In your answer, the linker could not find the folder named "lib". Hence, you needed to point the linker to the X86_64_lix library. That is an unnecessary step (according to me).