5

我在我的 PC 上新安装了 Fedora 19 x86_64。我写了一个简单的 OpenGL 程序,但编译失败。

    gcc -o quad quad.c -lX11 -lGL -lGLU
    /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-redhat-linux/4.8.1/../..        /../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
    collect2: error: ld returned 1 exit status

我有 MesaGL 和其他库(即 /usr/lib),那么有什么问题吗?

4

4 回答 4

6

对我来说,库符号链接出了点问题:

$ locate libGL.so | egrep ^/usr | xargs file
/usr/lib/libGL.so:                     symbolic link to `/usr/lib/libGL.so.1'
/usr/lib/libGL.so.1:                   symbolic link to `/usr/lib/libGL.so.1.2'
/usr/lib/libGL.so.1.2:                 symbolic link to `/usr/lib/fglrx/fglrx-libGL.so.1.2'
/usr/lib/fglrx/fglrx-libGL.so.1.2:     ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, stripped
/usr/lib64/FGL.renamed.libGL.so.1.2.0: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=46121ec8b16424a8b65a0cf11c3f9730ae0e49f5, stripped
/usr/lib64/libGL.so:                   broken symbolic link to `libGL.so.1.2.0'
/usr/lib64/libGL.so.1:                 symbolic link to `/usr/lib64/libGL.so.1.2'
/usr/lib64/libGL.so.1.2:               symbolic link to `/usr/lib64/fglrx/fglrx-libGL.so.1.2'
/usr/lib64/fglrx/fglrx-libGL.so.1.2:   ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, stripped

所以 /usr/lib/libGL.so 指向一个 32 位库,而 /usr/lib/libGL.so 是一个断开的链接。我修复了 /usr/lib64 版本以正确指向 libGL.so.1 (以及 /usr/lib 版本指向 64 位版本以更好地衡量),这似乎已经让我的代码编译了。

于 2014-08-07T01:05:37.133 回答
1

有关于不兼容版本的 libGL 以及不兼容的 GCC 库的警告。我认为您可能在 64 位操作系统上安装了 32 位版本的 gcc。尝试

file -L `which gcc`

检查这一点。

于 2013-07-09T15:31:05.893 回答
1

问题已解决。

我通过执行“ aticonfig --uninstall ”REBOOT 删除了 ATI Catalyst Driver v13.6 beta,使用相同的命令重新编译程序,它是成功的 :)

现在我重新安装了 ATI Catalyst Drivers v13.6 beta REBOOT 并再次编译程序,它构建成功!

不知道出了什么问题,但我现在有 OpenGL 工作 :)

于 2013-07-09T17:14:31.243 回答
-2

安装 freeglut-devel : # sudo yum install freeglut-devel

于 2013-10-24T20:21:04.423 回答