ffl*_*ing 5 c python linux opengl fedora
我一直在尝试为我的计算机设置(安装并获取正确的库),以便我可以开始图形编程。
我访问了 OpenGL 站点,发现它没有帮助。我尝试了 Wikibooks 的设置页面,但是那里有特定于 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;
}
Run Code Online (Sandbox Code Playgroud)
当我这样做时 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
Run Code Online (Sandbox Code Playgroud)
我不知道该怎么做。
一个基本的分步程序将不胜感激,但如果任何帮助总是受欢迎的。
尝试添加-lGL到您用来编译它的命令行(这就是错误消息告诉您要做的)。
这个问题也表明你也需要-lGLU。
此外,我会将库放在使用它们的源文件之后,因此:
gcc filename.c -lglut -lGL -lGLU
Run Code Online (Sandbox Code Playgroud)
代替:
gcc -lglut -lGL -lGLU filename.c
Run Code Online (Sandbox Code Playgroud)
此处提供了有关您为何在 fedora 上收到此消息的更多信息,但基本的修复方法是显式链接丢失的库。