windows配置opengles3开发环境

windows配置opengles3开发环境https://dn-maxiang.qbox.me/res-min/themes/marxico.css’ rel=’stylesheet’>

windows配置opengles3开发环境

1.使用VS进行配置

使用VS配置opengl比较简单,VS自带VC环境,所以只需要下载opengl库和arm模拟器即可。同时下载了《opengles3.0编程指南》中的实例源码,作为运行样例。具体步骤如下:

  • 工具准备
    • 《opengles3.0编程指南》源码下载:https://github.com/danginsburg/opengles3-book
    • 下载mail opengl es模拟器,用来运行opengl程序(推荐32位zip包,不需要安装文件):http://malideveloper.arm.com/resources/tools/opengl-es-emulator/
    • CMake 用来编译源码工程:https://cmake.org/download/
  • 环境配置
    • 找到VS的VC文件夹,根据版本不同,有所不同,我安装的2017企业版,路径为:C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.12.25827
    • 将mail模拟器zip包中的include文件夹中的所有文件文件夹拷贝到VC环境下的include文件夹中
    • libEGL.liblibGLESv2.lib这两个lib文件,拷贝到VC的lib/x86文件夹下
    • libEGL.dlllibGLESv2.dll俩个dll文件,拷贝到VC目录bin/Hostx86/x86文件夹下
    • Alt text这样opengl环境搭建基本完成
  • 使用CMake将源码编译成VS工程
    • 安装CMake(是否需要提前安装MinGW需要进行验证)
    • 打开CMake,Brower Source选择源码工程路径,Brower Build选择编译的输出目录
    • 执行Configure选择合适的VS版本
    • 这时,执行Generate会报错,原因是没有正确的指定EGLOPENGLES3库路径,因此需要指定正确的EGLOPENGLES3库路径
    • 这时CMake的界面应该如下:Alt text
      • 指定EGL库文件路径,配置EGL_LIBRARY为VC目录中libEGL.lib的位置
      • 执行opengles3库文件路径,配置OPENGLES3_LIBRARY为VC目录下libGLESv2.lib文件路径
    • 这时在执行Generate就能够在输出位置中获取到对应的VS工程
    • 在build目录中打开生成的.sin或者直接在CMake执行Open Porject,打开VS工程,将需要执行的工程设置为启动项,运行程序,即可看到窗口以及绘制的图形Alt text
  • 如果是想要将Common直接作为库进行使用,则需要以下步骤
    • 第一次成功运行build出的VS工程后,可以看到VS工程中Common目录下生成了Debug文件夹,拷贝Debug文件夹下的Common.lib文件到VC的lib/x86文件夹(和上文中libEDG.lib两个库文件相同目录)下
    • 配置依赖的信息 Alt text, 右键项目–>属性–>连接器–>输入–>附加依赖项,并输入libEGL.lib;libGLESv2.lib;Common.lib;
    • 运行,没问题Alt text,大吉大利,今晚吃鸡(^▽^)
    • 这样就可以直接使用Common中的代码信息了

2.使用clion进行配置

上文介绍了使用VS配置Opengles环境的方式,虽然VS配置环境比较简单,但使用VS进行opengles开发有两个缺点:臃肿和智能提示不智能。同时本着一直以来对JetBrains的喜爱,决定使用CLion进行opengles开发。开发所使用的工具又可以分为两种:使用freeglut和使用上文中的模拟器。以下两种方法都将进行配置

1.使用freeglut(opengl,而不是opengles)

使用freeglut的配置方式,主要参考了该博文:https://blog.csdn.net/m0_37748310/article/details/80391026 特此感谢

  • 工具准备:
    • MinGW,既然是使用CLion,而不是使用VC环境,所以选择MinGW作为编译工具,可以参考https://blog.csdn.net/ksksjipeng/article/details/52353258对CLion进行安装配置
    • freeglut,作为opengl中glut使用最广泛的开源工具,freeglut提供了丰富而使用的接口,下载地址:https://www.transmissionzero.co.uk/software/freeglut-devel/,需要其中的MinGW版本
    • CLion,(废话!!!)
  • 配置freeglut环境:
    • freeglut压缩包下载解压后,包含bin include lib三个文件夹
    • 将include/GL文件夹下拷贝到minGW/include/GL文件夹下(如果是已经拷贝过了opengles3的include文件,本条可以跳过)
    • 64位机的话将压缩包/lib/x64中的.a文件拷贝到mingw/lib文件夹下,32位机的话应该拷的是压缩包/lib中的两个.a文件
    • 64位机把压缩包/bin/x64里的文件拷贝到C://Windows//SysWOW64下,32位机压缩包/bin下文件到C://Windows//System32下(即参考博文中提及的第三步,经测试并没有什么效果,算是为参考博文博主补充验证)
    • 这样freeglut环境基本配置完毕

新建CLion工程

  • 修改CMake配置文件
    • 其中set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -D FREEGLUT_STATIC")一定需要加上,虽然暂时不清楚作用

   
   
   
   
cmake_minimum_required(VERSION 3.9)
project(OpenGL_3)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -D FREEGLUT_STATIC")
add_executable(OpenGL_3 glut.cpp )
target_link_libraries(OpenGL_3 freeglut_static opengl32 winmm gdi32 glu32.lib)
  • 编写main.cpp代码(直接使用了参考博文中的代码)

   
   
   
   
#include
#include
void ChangeSize(GLsizei w,GLsizei h){
if(w< 1) w= 1;
if(h< 1) h= 1;
printf( "%d %d\n",w,h);
glViewport( 0, 0,w,h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
if(w<=h)
glOrtho( -30.0, 30.0, -30.0*(GLfloat)h/(GLfloat)w, 30.0*(GLfloat)h/(GLfloat)w, -50.0, 50.0);
else
glOrtho( -30.0*(GLfloat)w/(GLfloat)h, 30.0*(GLfloat)w/(GLfloat)h, -30.0, 30.0, -50.0, 50.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
void DrawMyObjects() {
//画四边形
glBegin(GL_QUADS);
glColor3f( 0.7, 0.5, 0.2);
glVertex2f( -7, -3);
glVertex2f( -5.5, -1);
glVertex2f( -1, -0.5);
glVertex2f( -1, -4);
glColor3f( 0.5, 0.7, 0.2);
glVertex2f( 2, -6.25);
glVertex2f( 2.5, -1);
glVertex2f( 6.5, 1);
glVertex2f( 4.5, -6.25);
glEnd();
}
void RenderScene()
{
glClear(GL_COLOR_BUFFER_BIT);
glColor3f( 1.0, 1.0, 0.0);
DrawMyObjects();
glFlush();
}
int main(int argc, char *argv[]){
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
glutInitWindowSize( 600, 600);
glutCreateWindow( "My first");
glClearColor( 0.51, 0.51, 0.51, 0.5);
glutReshapeFunc(ChangeSize);
glutDisplayFunc(RenderScene);
glutMainLoop();
return 0;
}
  • 运行,无问题,配置成功Alt text

2.使用mail模拟器(opengles)

该方法使用的方式基本与上文中使用VS配置opengles思路类似:

  • 工具准备
    • minGW,C++的编译环境
    • mail模拟器(需要其中的libEGL.liblibGLESv2.lib这两个lib文件,用来提供EGL和opengles功能)
    • 《opengles3编程指南》中的源码
  • 环境配置
    • 将mail压缩包下include文件夹下所有文件夹拷贝到minGW/include目录下
    • 将mail压缩包下libEGL.liblibGLESv2.lib拷贝到minGW/lib目录下
    • 将mail压缩包下libEGL.dlllibGLESv2.dll拷贝到minGW/bin目录下
  • 使用CLion打开源码工程
    • 需要注意的是,修改根目录下的CMakeList文件中的正确的opengles版本信息,否则无法运行Alt text
    • 运行成功:Alt text
  • 使用这种方式配置环境,如果想要将Common作为外部库进行使用,可以直接使用VS配置方法中生成的Common.lib文件,如果不想使用CMake和VS工具生成,还可以使用CLion运行一次源码后,在工程cmake-build-debug/Common中找到libCommon.a文件Alt text
    • 将上一步的Common.liblibCommon.a文件拷贝至minGW/lib文件夹下
    • 运行程序Alt text,完美大吉
  • 另外想要使用CLion进行C/C++开发,需要熟悉CMake规则

参考链接:
https://blog.csdn.net/AvatarForTest/article/details/79199807
https://blog.csdn.net/dcrmg/article/details/53049070
https://blog.csdn.net/dardgen2015/article/details/51563914

你可能感兴趣的:(opengl)