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:\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
 
文章開頭提到的問題:
上述程序中,最后允許,好像是從控制台允許,然后打開一個窗體的,怎么樣直接打開窗體,而沒有控制台的黑窗體呢? 求助!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM