環境: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 個 ==========
隨即在網絡上查找相關方法:結果發現,其實很簡單的一句
#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); }
下面是允許的的截圖:
文章開頭提到的問題:
上述程序中,最后允許,好像是從控制台允許,然后打開一個窗體的,怎么樣直接打開窗體,而沒有控制台的黑窗體呢? 求助!