VS OpenGL 开发程序时: error LNK: 无法解析的外部符号 __imp____glutInitWithExit@12,error LNK: 无法解析的外部符号 __imp____glutCreateWindowWithExit@8

时间:2024-04-16 20:45:16

环境: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:\Project\CPlusPlus\Graphics\Project1\Debug\Project1.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
 
文章开头提到的问题:
上述程序中,最后允许,好像是从控制台允许,然后打开一个窗体的,怎么样直接打开窗体,而没有控制台的黑窗体呢? 求助!