zoukankan      html  css  js  c++  java
  • VS2013 OpenGL 开发程序时: error LNK2019: 无法解析的外部符号 __imp____glutInitWithExit@12,error LNK2019: 无法解析的外部符号 __imp____glutCreateWindowWithExit@8

    环境:Windows 下 OpenGL ,Used in VS2013

    前言:刚接触 OpenGL 的人,第一件事当然就是配置环境,说起配置环境 OpenGL 和 DirectX 相差不多,同时也基本报了一个相近的错误,见正文

    问题:由于是刚刚接触 OpenGL,基本的东西也不知道,文章结尾留了一个问题,求解答!谢谢!


    代码如下:

    #include <gl/GLUT.H>
    
    void Initial();
    void Display();
    int main(int argc, char *argv[])
    {
        glutInit(&argc, argv);
        glutCreateWindow("game标题");
        glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
        glutInitWindowSize(500, 400);
        glutInitWindowPosition(200, 100);
        glutDisplayFunc(Display);
        Initial();
        glutMainLoop();
        return 0;
    }
    void Display()
    {
        glClear(GL_COLOR_BUFFER_BIT);
        glColor3f(1.0f, 0.0f, 0.0f);
        glRectf(50.0f, 100.0f, 150.0f, 50.0f);
        glFlush();
    }
    
    void Initial()
    {
        glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
        glMatrixMode(GL_PROJECTION);
        gluOrtho2D(0.0, 200.0, 0.0, 150.0);
    
    }

    错误代码如下:

    1>------ 已启动生成:  项目: Project1, 配置: Debug Win32 ------
    1>  main.cpp
    1>main.obj : error LNK2019: 无法解析的外部符号 __imp____glutInitWithExit@12,该符号在函数 _glutInit_ATEXIT_HACK@8 中被引用
    1>main.obj : error LNK2019: 无法解析的外部符号 __imp____glutCreateWindowWithExit@8,该符号在函数 _glutCreateWindow_ATEXIT_HACK@4 中被引用
    1>F:ProjectCPlusPlusGraphicsProject1DebugProject1.exe : fatal error LNK1120: 2 个无法解析的外部命令
    ========== 生成:  成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========

    搜狗截图20150515000610

    随即在网络上查找相关方法:结果发现,其实很简单的一句

    #define GLUT_DISABLE_ATEXIT_HACK
    完整代码如下:
    #define GLUT_DISABLE_ATEXIT_HACK 
    #include <gl/GLUT.H>
    
    void Initial();
    void Display();
    int main(int argc, char *argv[])
    {
        glutInit(&argc, argv);
        glutCreateWindow("game标题");
        glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
        glutInitWindowSize(500, 400);
        glutInitWindowPosition(200, 100);
        glutDisplayFunc(Display);
        Initial();
        glutMainLoop();
        return 0;
    }
    void Display()
    {
        glClear(GL_COLOR_BUFFER_BIT);
        glColor3f(1.0f, 0.0f, 0.0f);
        glRectf(50.0f, 100.0f, 150.0f, 50.0f);
        glFlush();
    }
    
    void Initial()
    {
        glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
        glMatrixMode(GL_PROJECTION);
        gluOrtho2D(0.0, 200.0, 0.0, 150.0);
    
    }
    下面是允许的的截图:
    搜狗截图20150515001254
     
    文章开头提到的问题:
    上述程序中,最后允许,好像是从控制台允许,然后打开一个窗体的,怎么样直接打开窗体,而没有控制台的黑窗体呢? 求助!
  • 相关阅读:
    读书笔记----软件设计原则、设计模式
    程伟杰 | 2021软件代码开发技术作业一 | 自我介绍+课程6问
    团队作业3-需求改进&系统设计
    团队项目作业2-需求规格说明书
    【Android实习】20场面试斩获大厂offer,我学会了什么
    通俗易懂,android是如何管理内存的
    关于Handler同步屏障你可能不知道的问题
    清晰图解深度分析HTTPS原理
    这一篇TCP总结请收下
    深入浅出Java线程池:源码篇
  • 原文地址:https://www.cnblogs.com/herbertchina/p/4504871.html
Copyright © 2011-2022 走看看