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

我试图研究这个问题并遇到了这个 link:skipping incompatible libcudart.so when searching for -lcudart

所以我听从了关于 link 的建议并添加了

 /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$ 

但是问题依旧,求助。

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

/usr/local/cuda-5.0/库 /usr/local/cuda-5.0/lib64

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

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 添加以下内容

export PATH=/usr/local/cuda-5.0/bin:$PATH

export 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