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
     
    文章开头提到的问题:
    上述程序中,最后允许,好像是从控制台允许,然后打开一个窗体的,怎么样直接打开窗体,而没有控制台的黑窗体呢? 求助!
  • 相关阅读:
    树上启发式合并_训练总结+题目清单
    Wannafly Day2 E 阔力梯的树(树上启发式合并)
    profile(/etc/profile)和bash_profile的区别
    MacOS配置.bash_profile,重启终端后配置失效和MacOS .zshrc does not exist问题
    Markdown入门学习202004
    把-图片的链接-下载到本地(服务器);
    前端Vue- v-for 循环中删除 元素;
    关于谷歌浏览器(Chrome)前端JS方法调用方法,运行顺序出错问题;
    国外的api之ASANA-java开发-ASANAAPI(真难!)
    vue脚手架3.x完整版
  • 原文地址:https://www.cnblogs.com/herbertchina/p/4504871.html
Copyright © 2011-2022 走看看