环境: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 个 ==========
随即在网络上查找相关方法:结果发现,其实很简单的一句
#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); }
下面是允许的的截图:
文章开头提到的问题:
上述程序中,最后允许,好像是从控制台允许,然后打开一个窗体的,怎么样直接打开窗体,而没有控制台的黑窗体呢? 求助!