天天看點

OpenGL在VS2015環境下的配置

最近工作重新要用到OpenGL,還得是X64、Release版本的,就在VS2015下把環境重新配置了一下(VS2010、VS2013下同)。感覺現在OpenGL在VS環境下的配置已經非常容易了,完全沒有以前那麼多問題,畢竟程式都是逐漸完善的。

1.編譯freeglut

Freeglut是需要用CMake來生成VS項目工程的。打開CMake進行設定,在where is the source code 設定下載下傳好的freeglut源代碼目錄,where is build the binaries設定存放生成VS工程的目錄。然後點選configure,第一次configure會讓你選擇編譯器,選擇适合相應的VS編譯器就行了,如我選的vs2015,win64。如下圖所示。

OpenGL在VS2015環境下的配置

再次點選configure,直到沒有紅色選項。然後點選Generate就在生成目錄下生成了sln工程檔案。打開freeglut.sln,當普通的VS項目編譯就行了。編譯生成的.dll在bin目錄,生成的.lib在lib目錄,需要注意的是頭檔案在源代碼目錄的inlcude檔案夾中。

OpenGL在VS2015環境下的配置

2.編譯glew

Glew的編譯就更加簡單了,在glew的源代碼的build目錄中就已經準備好了vs工程檔案:

OpenGL在VS2015環境下的配置

如果沒有相應的vs版本(比如我用的vs2015),就直接找個最近的版本編譯好了,其實vs2008以後的版本差距都不是太大,應該都是能直接編譯的。編譯好後.dll在bin目錄,.lib在lib目錄,頭檔案在include目錄。

3.建構環境

建立一個控制台項目測試環境,代碼如下:

#include "stdafx.h"
#include "GLTest.h"

#include <iostream>

#include <GL/glew.h>
#include <GL/freeglut.h>

using namespace std;

void myDisplay(void)
{
    glClear(GL_COLOR_BUFFER_BIT);
    glRectf(-, -, , );
    glutSwapBuffers();
}

int main(int argc, char *argv[])
{
    glutInit(&argc, argv);
    glutInitWindowSize(, );
    glutInitWindowPosition(, );
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE);    
    glutCreateWindow("OpenGL Test!");

    if (glewInit() == GLEW_OK)
    {
        printf("glewInit OK!\n\n");
    }   
    printf("OpenGL version: %s\n", glGetString(GL_VERSION));
    printf("GLSL version: %s\n", glGetString(GL_SHADING_LANGUAGE_VERSION));

    glutDisplayFunc(&myDisplay);

    glutMainLoop();

    return ;
}
           

首先将freeglut和glew的頭檔案放到同一個include檔案夾,在工程右鍵——屬性——C/C++——正常——附加包含目錄中指到該檔案夾。然後直接右鍵——添加——現有項中添加剛生成的.lib檔案。這樣測試項目就可以編譯了。最後找到測試項目生成exe檔案目錄,将需要的.dll放入其中就可以運作了。運作結果如下:

OpenGL在VS2015環境下的配置

注意編譯freeglut和glew的環境和調用環境一定要要對應好,64位程式就調用64位的dll,realse版本就調用realse的dll,否則可能出錯。

繼續閱讀