编译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文件)
再次编译,问题解决!