繁体   English   中英

NVCC CUDA 交叉编译找不到“-lcudart”

[英]NVCC CUDA cross compiling cannot find “-lcudart”

我已经在我的 Ubuntu 虚拟机上安装了 CUDA 5.0 和 NVCC,甚至在编译一个基本的 CUDA C 程序时也遇到了问题。 错误如下:

user@ubuntu:~/CUDA$ nvcc helloworld.cu -o helloworld.o -target-cpu-arch=ARM -ccbin=/usr/bin/arm-linux-gnueabi-gcc-4.6 --machine=32
/usr/lib/gcc/arm-linux-gnueabi/4.6/../../../../arm-linux-gnueabi/bin/ld: skipping incompatible /usr/local/cuda-5.0/bin/../lib/libcudart.so when searching for -lcudart
/usr/lib/gcc/arm-linux-gnueabi/4.6/../../../../arm-linux-gnueabi/bin/ld: skipping incompatible /usr/lib/libcudart.so when searching for -lcudart
/usr/lib/gcc/arm-linux-gnueabi/4.6/../../../../arm-linux-gnueabi/bin/ld: cannot find -lcudart
collect2: ld returned 1 exit status

我试图研究这个问题并遇到了这个链接: 在搜索 -lcudart 时跳过不兼容的 libcudart.so

所以我遵循了该链接上提供的建议并添加了

 /usr/local/cuda-5.0/lib64 

/usr/local/cuda-5.0/lib 

到我的 LD_LIBRARY_PATH 环境变量,现在这是

  user@ubuntu:~/CUDA$ echo $LD_LIBRARY_PATH 
  /usr/local/cuda-5.0/lib:/usr/local/cuda-5.0/lib64
  user@ubuntu:~/CUDA$ 

但是问题依然存在,请大家帮忙。

CUDA 5.5是第一个支持 ARM v7 的 CUDA 版本。 您安装的 CUDA 5.0 工具包没有支持,这就是它找不到正确版本的 CUDA 运行时库的原因。

事实证明,我从 NVIDIA 使用的 CUDA 安装程序不允许我为我的 CARMA 板交叉编译,但必须从制造商 SECO 下载它。

可能是,这是 Cuda Toolkits 的问题。 第一个 Cuda Toolkit 5.0 不支持 Arm。 第二个Cuda Toolkit 6.5 交叉编译丢失了libcudart.so。 我解决了这个问题是从 Arm 的 Cuda Toolkit 6.5 复制 libcudart.so。

在 ~/.bashrc 中添加以下内容

导出路径=/usr/local/cuda-5.0/bin:$PATH

导出 LD_LIBRARY_PATH=/usr/local/cuda-5.0/lib64:$LD_LIBRARY_PATH

在以下文件中 -> /etc/ld.so.conf.d/cuda.conf

/usr/local/cuda-5.0/lib64

运行:sudo ldconfig

添加 /etc/ld.so.conf 这个:

/usr/local/cuda-5.0/lib /usr/local/cuda-5.0/lib64

并运行命令:ldconfig 你的编译会找到 cudart lib

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM