【问题标题】:Setting up OpenGL on Fedora在 Fedora 上设置 OpenGL
【发布时间】:2012-02-20 03:09:56
【问题描述】:

我一直在尝试为我的计算机设置(安装并获取正确的库),以便开始图形编程。

我访问了 OpenGL 站点,发现它没有帮助。 我尝试了 Wikibooks 的 Setting up page,但其中包含特定于 Debian 和 Debian 类系统的安装信息,我找不到 Fedora 的相应内容。

我知道 C 和 python,如果可能的话,我更喜欢在 C 中工作,我确实找到了 PyOpenGL.noarch 并使用 yum 安装它。

我查了几个其他网站并没有找到太多,但我设法安装了 freeglut-devel

我检查并在 /usr/include/GL 文件夹中找到了 GL 库,但是当我尝试运行以下代码时{取自 wikibooks 网站本身,所以我假设它可以工作}:

#include <stdio.h> /* printf */
#include <GL/glut.h> /* glut graphics library */
/* 
* Linux c console program 
* gcc f.c -lglut
* ./a.out
* */
main(int argc, char **argv)
{
   glutInit(&argc, argv);
   glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
   glutCreateWindow("red 3D lighted cube");
   printf("GL_VERSION = %s\n",glGetString(GL_VERSION) ); /* GL_VERSION = 2.1.2 NVIDIA      195.36.24 */

return 0; 
}

当我这样做时gcc -lglut filename.c

我收到以下错误:

/usr/bin/ld: /usr/lib/gcc/i686-redhat-linux/4.6.1/../../../libglut.so: undefined reference to symbol 'glGetString'
/usr/bin/ld: note: 'glGetString' is defined in DSO /usr/lib/libGL.so.1 so try adding it to the linker command line
/usr/lib/libGL.so.1: could not read symbols: Invalid operation
collect2: ld returned 1 exit status

我不知道该怎么做。

非常感谢您提供基本的分步过程,但如果有任何帮助,我们随时欢迎。

【问题讨论】:

    标签: python c linux opengl fedora


    【解决方案1】:

    尝试将-lGL 添加到您用来编译它的命令行中(这就是错误消息告诉您的操作)。

    This question 还建议您也需要-lGLU

    另外,我会将库放在使用它们的源文件之后,所以:

    gcc filename.c -lglut -lGL -lGLU
    

    代替:

    gcc -lglut -lGL -lGLU filename.c 
    

    关于为什么您在 fedora here 上收到此消息的更多信息,但基本修复是显式链接丢失的库。

    【讨论】:

    • 请注意 OpenGL 不直接支持 glut。 opengl.org/resources/libraries/glut
    • 我必须安装 libGNEW gnew.i686 才能使 -lGNEW 工作,某些示例也需要它,但除此之外它工作。谢谢。 :D
    猜你喜欢
    • 1970-01-01
    • 2016-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-28
    • 2016-03-04
    • 1970-01-01
    • 2022-01-20
    相关资源
    最近更新 更多