ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

linux – 为什么这个GLUT程序不能编译?我错过了库或标题吗?

2019-10-08 19:00:46  阅读:231  来源: 互联网

标签:glut linux opengl linker codeblocks


我刚刚开始使用Linux(Mint 11),最近,我决定将OpenGL编程作为一种业余爱好.我发现代码和技术相对简单,但是,我很难将所有资源放在正确的位置.代码是:

#include <stdlib.h>
#include <stdio.h>
#include <GL/glew.h>
#ifdef __APPLE__
#  include <GLUT/glut.h>
#else
#  include <GL/glut.h>
#endif

static int make_resources(void)
{
    return 1;
}

static void update_fade_factor(void)
{
}

static void render(void)
{
    glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
    glClear(GL_COLOR_BUFFER_BIT);
    glutSwapBuffers();
}


int main(int argc, char** argv)
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE);
    glutInitWindowSize(400, 300);
    glutCreateWindow("Hello World");
    glutDisplayFunc(&render);
    glutIdleFunc(&update_fade_factor);
        glewInit();
    if (!GLEW_VERSION_2_0) {
        fprintf(stderr, "OpenGL 2.0 not available\n");
        return 1;
    }
      if (!make_resources()) {
        fprintf(stderr, "Failed to load resources\n");
        return 1;
    }

    glutMainLoop();
    return 0;
}

编译时,我收到以下消息

../../Libraries/glut-3.7/lib/glut/libglut.so||undefined reference to `glXQueryChannelRectSGIX'|
../../Libraries/glut-3.7/lib/glut/libglut.so||undefined reference to `glXChannelRectSyncSGIX'|
../../Libraries/glut-3.7/lib/glut/libglut.so||undefined reference to `glXChannelRectSGIX'|
../../Libraries/glut-3.7/lib/glut/libglut.so||undefined reference to `glXQueryChannelDeltasSGIX'|
../../Libraries/glut-3.7/lib/glut/libglut.so||undefined reference to `glXBindChannelToWindowSGIX'|
||=== Build finished: 5 errors, 0 warnings ===|

在线查看告诉我,我可能没有包括正确的库(可能是libX),但是我不确定我在哪里可以找到它们,如果它们甚至是正确的库.我已经尝试连接/usr/lib/X86_64-linux-gnu/libX11.so,/usr/lib / X11既不包含库文件也不包含/ lib目录,我确定已经安装了lib11-dev软件包.我究竟做错了什么?

信息:
操作系统:Linux Mint 11
IDE:Code :: blocks 10.05
遵循this教程.注意:我找不到它引用的x11r6目录.

解决方法:

确保你已经安装了libglew-dev和freeglut3-dev

sudo apt-get install libglew-dev freeglut3-dev

然后链接到Makefile中的这个lib或编译命令

-lglut -lGLEE

例如

g++ -lglut -lGLEW -o test main.cpp

(这是我编写你的例子的方式)

标签:glut,linux,opengl,linker,codeblocks
来源: https://codeday.me/bug/20191008/1873637.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有