您的位置:首页 > 运维架构 > Linux

cuda程序编译出错: skipping incompatible /usr/lib/gcc/x86_64-redhat-linux/4.8.5

2017-05-06 15:36 465 查看
编译cuda程序时报错:

/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../libGL.so when searching for -lGL
/usr/bin/ld: skipping incompatible /lib/libGL.so when searching for -lGL
/usr/bin/ld: skipping incompatible /usr/lib/libGL.so when searching for -lGL
/usr/bin/ld: cannot find -lGL

解决办法:

首先,保证GL库已安装。

yum install freeglut

yum install freeglut-devel

若已安装GL编译仍报错,建议采用以下方式(ps. 可以解决我的问题,不知道是否通用哈~)

命令行输入以下指令,获取libGL的位置及详细信息。

$locate libGL.so | egrep ^/usr | xargs file

得到结果如下:

/usr/lib/libGL.so:         symbolic link to `libGL.so.1'

/usr/lib/libGL.so.1:       symbolic link to `libGL.so.1.0.0'

/usr/lib/libGL.so.1.0.0:   ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, stripped

/usr/lib64/libGL.so:       broken symbolic link to `libGL.so.1.2.0'

/usr/lib64/libGL.so.1:     symbolic link to `libGL.so.1.0.0'

/usr/lib64/libGL.so.1.0.0: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, stripped

可以看到/usr/lib64/libGL.so是一个broken symbolic link

接着通过软链接更新gcc中的libGL,如下

ln -s /usr/lib64/libGL.so.1.0.0 /usr/lib/gcc/x86_64-redhat-linux/4.8.5/libGL.so

(ps. 软链接用法: ln -s source destination; 通过建立软链接使destination 指向source文件)

再次编译,问题解决!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: