【问题标题】:Having many glut errors有很多过剩错误
【发布时间】:2013-09-30 20:25:11
【问题描述】:

我找到了这段代码,想在我的机器上试试:

#include <GL/freeglut.h>

static void RenderSceneCB()
{
    glClear(GL_COLOR_BUFFER_BIT);
    glutSwapBuffers();
}

static void InitializeGlutCallbacks()
{
    glutDisplayFunc(RenderSceneCB);
}


int main(int argc, char** argv)
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGBA);
    glutInitWindowSize(1024, 768);
    glutInitWindowPosition(100, 100);
    glutCreateWindow("Tutorial 01");

    InitializeGlutCallbacks();

    glClearColor(0.0f, 0.0f, 0.0f, 0.0f);

    glutMainLoop();
    
    return 0;
}

我得到了这些错误:

g++ tutorial01.cpp

/tmp/ccOoXvqJ.o:在函数`RenderSceneCB()'中:

tutorial01.cpp:(.text+0xa): undefined reference to `glClear'

tutorial01.cpp:(.text+0xf): 对 `glutSwapBuffers' 的未定义引用

/tmp/ccOoXvqJ.o:在函数“InitializeGlutCallbacks()”中:

tutorial01.cpp:(.text+0x1f): 对 `glutDisplayFunc' 的未定义引用

/tmp/ccOoXvqJ.o:在函数“main”中:tutorial01.cpp:(.text+0x43):

未定义对 `glutInit' tutorial01.cpp:(.text+0x4d):

的引用

对 `glutInitDisplayMode' 的未定义引用

tutorial01.cpp:(.text+0x5c): 未定义的引用

`glutInitWindowSize' tutorial01.cpp:(.text+0x6b): 未定义参考

to `glutInitWindowPosition' tutorial01.cpp:(.text+0x75): undefined

参考 `glutCreateWindow' tutorial01.cpp:(.text+0x8b): undefined

参考 `glClearColor' tutorial01.cpp:(.text+0x90): undefined

对 `glutMainLoop' collect2 的引用:ld 返回 1 个退出状态

我想我已经在我的机器上成功安装了 freeglut3-dev。你能告诉我为什么我得到这么多错误吗?我使用的是 Ubuntu 12.04。

【问题讨论】:

  • 您不仅需要安装 glut,还必须与它的库进行链接。您应该在关于如何构建程序的问题中添加一些内容,因为这可能是错误所在。
  • 是的,我必须添加“-lglut”。谢谢。

标签: c++ opengl glut freeglut


【解决方案1】:

这些是 Glut 和 OpenGL 的链接器错误。 Linker 是一种尝试将所有目标文件链接在一起以获取 exe 的软件。

您需要将它们(OpenGl 和 Glut)都与您的项目相关联。谷歌有很多答案 =)

【讨论】:

    【解决方案2】:

    您看到的是链接器错误,即您的编译器处理的代码已成功转换为编译单元。现在,链接器尝试创建一个可执行文件,并且在绑定编译单元的松散端时遇到了麻烦,即对 GLUT 和 OpenGL 符号的引用。您必须告诉链接器在哪里查找,而不仅仅是您的编译单元和标准库。

    由于您的错误消息看起来像 GCC 生成的内容,我建议您将 -lGL -lglut 添加到编译器的命令行中。

    【讨论】:

      【解决方案3】:

      我下载了 freeglut 并使用 MinGW 编译了我的 Code::blocks 中的代码,我发现你的问题出在库上,你需要链接 libopengl32.alibfreeglut.a 以便程序可以运行它。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-08-26
        相关资源
        最近更新 更多