首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >CUDA on Fedora编译失败

CUDA on Fedora编译失败
EN

Stack Overflow用户
提问于 2013-07-20 06:04:14
回答 3查看 928关注 0票数 0

在研究了在我的新Fedora19系统上安装CUDA5.0之后,我发现CUDA5.5是一个更好的选择,因为它是以rpm格式出现的。我按照安装说明找到了here,在我尝试编译示例之前,一切都很顺利。首先,它将示例安装到/usr/local/cuda/ samples,我必须确保我的LD_LIBRARY_PATH包含/usr/local/cuda/lib (不仅仅是5.5版本),但是当我尝试运行'make all‘命令时,我得到了以下两个错误。

代码语言:javascript
复制
../../common/inc/exception.h: In constructor ‘Exception<Std_Exception>::Exception()’:
../../common/inc/exception.h:129:94: warning: delegating constructors only available with -std=c++11 or -std=gnu++11 [enabled by default]
Exception<Std_Exception>::Exception() :

我还以为C++11是默认版本呢?然后,当我尝试编译matrixMulDrv时,我得到了以下错误,这真的没有意义:

代码语言:javascript
复制
/usr/local/cuda-5.5/bin/nvcc -ccbin g++   -m64        -o matrixMulDrv matrixMulDrv.o  -L/usr/lib64/nvidia -lcuda
/bin/ld: cannot find -lcuda
collect2: error: ld returned 1 exit status

我想知道其他人是否也有类似的问题。我已经迁移到5.5,这样我就可以使用当前的gcc编译器(4.8.1)。当我查看/usr/lib64/nvidia时,我看到了假设需要的所有文件,包括libcuda.so.1。还有人看过这个吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-07-20 12:49:34

带有GCC 4.7.2/GLIBC 2.16的Fedora 18是用于CUDA5.5RC的officially supported distro。Fedora 19不是,也没有任何迹象表明支持GCC 4.8.x。我对你遇到麻烦并不感到惊讶。您在/usr/lib64/nvidia中看到的libcuda.so链接到了与most likely on your machine (2.17)版本不同的GLIBC2.16版本。

我能想象到的Fedora 19的唯一改进方法是将你的(也就是安装一个备用的) GCC/GLIBC降级到Fedora 18自带的版本,换成Fedora 18可能会更容易。

票数 1
EN

Stack Overflow用户

发布于 2013-07-22 02:52:27

关于第一个问题:

代码语言:javascript
复制
../../common/inc/exception.h: In constructor ‘Exception<Std_Exception>::Exception()’:
../../common/inc/exception.h:129:94: warning: delegating constructors only available with -std=c++11 or -std=gnu++11 [enabled by default]
Exception<Std_Exception>::Exception() :

这些消息仅是警告,因此编译仍应继续进行,不会出现任何问题。

关于第二个问题:

代码语言:javascript
复制
/bin/ld: cannot find -lcuda
collect2: error: ld returned 1 exit status

查看/usr/lib64/nvidia并确保libcuda.so和libcuda.so.1符号链接都存在并指向libcuda.so.your驱动程序版本。

在我的安装中,由于某种原因,没有创建/usr/lib64/nvidia/libcuda.so符号链接。如果您的也丢失了,则键入(作为根用户):

代码语言:javascript
复制
ln -s /usr/lib64/nvidia/libcuda.so.VERSION /usr/lib64/nvidia/libcuda.so

将版本替换为nvidia驱动程序的版本号(例如libcuda.so.319.32)。

这解决了你的问题吗?

票数 2
EN

Stack Overflow用户

发布于 2015-03-05 06:52:22

CUDA is highly specific to the Linux kernel version。例如,CUDA6.5只保证与Fedora 20 kernel 3.12一起使用。

代码语言:javascript
复制
# Install kernel 3.16.2
sudo yum -y install https://kojipkgs.fedoraproject.org/packages/kernel/3.16.2/201.fc20/x86_64/kernel-3.16.2-201.fc20.x86_64.rpm
sudo yum -y install https://kojipkgs.fedoraproject.org/packages/kernel/3.16.2/201.fc20/x86_64/kernel-devel-3.16.2-201.fc20.x86_64.rpm
sudo yum -y install libvdpau-devel
sudo reboot

# Install cuda 6.5
wget http://developer.download.nvidia.com/compute/cuda/6_5/rel/installers/cuda_6.5.14_linux_64.run
sudo bash cuda_6.5.14_linux_64.run --override

将内核降级以匹配CUDA System Requirements中指定的版本会很有帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17756221

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档