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
我已经在我的 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