win10+VS2017+OpenGL ES3.0 环境配置 源码编译及示例运行

news2024/12/25 10:32:51

@ win10+VS2017+OpenGL ES3.0 环境配置 源码编译及示例运行

win10+VS2017+OpenGL ES3.0 环境配置 源码编译及示例运行

本人参考其他人的博客内容学习opengles3.0编程指南,并在win10系统上用VS2017对OpenGL ES3.0 进行了实际的环境配置及源码编译。

一、环境准备工作

1 下载并安装 Visual Studio 2017

2 下载 《opengles3.0编程指南》源码

https://github.com/danginsburg/opengles3-book

3 下载CMake编译工具

4 下载 mail opengl es模拟器,用来运行opengl程序, 建议下载32位zip包

https://developer.arm.com/downloads/-/opengl-es-emulator-downloads

所有下载的文件如下图所示:
在这里插入图片描述

二、环境配置

1 解压mail opengl es 模拟器的压缩包

本人解压路径 F:\opengles3.0\Mali_OpenGL_ES_Emulator-v3.0.2.g694a9-Windows-32bit

2 打开你自己Visual Studio 2017的安装目录下的路径

本人安装路径 D:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.16.27023

3 include、lib及dll文件拷贝

复制Mali_OpenGL_ES_Emulator-v3.0.2.g694a9-Windows-32bit文件夹下的下列文件:

(1) 把include里面的所有文件拷贝到 Visual Studio 2017的 include 里面。

(2) libEGL.lib,libGLESv2.lib,libMaliEmulator.lib 三个文件copy到 Visual Studio 的 lib/x86 里面。

(3) 把 libEGL.dll,libGLESv2.dll,libMaliEmulator.dll 三个文件copy到 Visual Studio 的 bin/Hostx86/x86 里面。

三、opengles3.0编程指南源码编译

1 在同目录下建立一个文件夹opengles3_build86,用于保存编译后的文件

2 打开安装好的cmake-gui文件

F:\opengles3.0\cmake-3.15.6-win64-x64\bin

(1)source code 路径为opengles3-book-master

本人路径 F:\opengles3.0\opengles3-book-master

(2) build thr binaries 路径即是 步骤 1 中新建的opengles3_build86目录

(3) 点击左下Configure,选择Visual Studio 15 2017 win32版本
在这里插入图片描述

(4) 点击finish后会出现报错的红框,可做如下操作

修改 EGL_LIBRARY的环境配置,其为libEGL.lib 的全路径:

本人路径为:D:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.16.27023\lib\x86\libEGL.lib

修改OPENGLES_LIBRARY环境配置,其为libGLESv2.lib 的全路径:

本人路径为:D:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.16.27023\lib\x86\libGLESv2.lib

(5) 再次点击configure, 没有报错,点击Generate。出现如下提示就是编译成功了。
在这里插入图片描述

Selecting Windows SDK version 10.0.19041.0 to target Windows 10.0.22621.
Configuring done
Generating done

3 用VS2017打开opengles3_build86/ 文件夹下的 ES3_Book.sln 文件
在这里插入图片描述

鼠标右键点击Hello_Triangle,设为启动项目。Release 模式, 32为环境。

鼠标右键点击Hello_Triangle,重新生成,直接运行即可显示画出的三角形
在这里插入图片描述

四、自己单独建立工程

自己在D盘(本人在自己的电脑上是D盘)建立一个opengl_es3.0文件夹,用于存放include文件、lib库文件、bin文件等。
在这里插入图片描述

1 include文件拷贝

将F:\opengles3.0\opengles3-book-master\中的Common和Externa两个文件夹拷贝到D:\opengl_es3.0\中。

2 在D:\opengl_es3.0\中建立bin和lib两个文件夹

3 lib文件拷贝

(a) 将F:\opengles3.0\Mali_OpenGL_ES_Emulator-v3.0.2.g694a9-Windows-32bit\中的 libEGL.lib、libGLESv2.lib、libMaliEmulator.lib 拷贝到D:\opengl_es3.0\lib\中。
(b) 将F:\opengles3.0\opengles3_build86\Common\Release中Common.lib 同样拷贝到D:\opengl_es3.0\lib\中。

在这里插入图片描述

4 bin文件拷贝

(a)将F:\opengles3.0\Mali_OpenGL_ES_Emulator-v3.0.2.g694a9-Windows-32bit\中的 libEGL.dll、libGLESv2.dll、libMaliEmulator.dll、log4cplus.dll 拷贝到D:\opengl_es3.0\bin\中。
(b)将F:\opengles3.0\Mali_OpenGL_ES_Emulator-v3.0.2.g694a9-Windows-32bit\openglessl 拷贝到D:\opengl_es3.0\bin\中。

在这里插入图片描述

5 高级系统设置

打开电脑的系统属性—>高级---->环境变量—>系统变量—>Path—>编辑—>新建
将D:\opengl_es3.0\bin填入新建一栏即可。
在这里插入图片描述

6 用vs2017新建一个工程

将Hello_Triangle.c文件加入到自己的工程中。

(a)设置include路径

将如下两个路径添加到属性—>VC++目录—>可包含目录中

D:\opengl_es3.0\Common\include     
D:\opengl_es3.0\External\include

在这里插入图片描述

(b)设置lib路径

将如下路径添加到属性—>VC++目录—>库目录中

D:\opengl_es3.0\lib

在这里插入图片描述

( c )附加项设置

将如下内容

libEGL.lib
libGLESv2.lib
libMaliEmulator.lib
Common.lib
kernel32.lib
user32.lib
gdi32.lib
winspool.lib
shell32.lib
ole32.lib
oleaut32.lib
uuid.lib
comdlg32.lib
advapi32.lib

添加到链接器—>输入—>附加依赖项中即可。

运行该代码,即可显示画出三角形的效果。

五、参考资料

1 windows配置opengles3.0开发环境:

https://blog.csdn.net/mmy545237835/article/details/80762150

2 Windows10 搭建OpenGL ES 3.0 开发环境

https://blog.csdn.net/lxk_1993/article/details/88921872

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/99705.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java项目:SSM网上药品销售商城网站系统

作者主页:源码空间站2022 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 本系统分为前后台,分为管理员与普通用户两种角色,前台由普通用户登录,后台由管理员登录; 管理员…

架构师必读 —— 逻辑模型(3)

逻辑思考总是从提问“为什么”开始 培养逻辑思考习惯的捷径之一,就是经常问自己“为什么”。无论收到什么信息,都应该试着问一句“为什么”。 举个例子,A公司收购了其他竞争公司。为什么会收购呢? 这其中隐藏着A公司的发展战略。另…

闲置物品交易系统

开发工具(eclipse/idea/vscode等): 数据库(sqlite/mysql/sqlserver等): 功能模块(请用文字描述,至少200字): 基于55m闲置物品交易系统 网站前台:关于我们、联系我们、公告信息、闲置物品、求购信息 管理员功能&#xf…

多态的学习

目录什么是多态多态有啥限制条件吗?重写向下转型和向上转型向上转型向下转型多态的优点多态缺陷避免在构造方法中调用重写的方法什么是多态 多态的概念:就是去完成某个行为,当不同的对象去完成时会产生出不同的状态。 举个例子大家就知道了&…

vue router动态路由与路由的匹配

vue router动态路由与路由的匹配&#xff0c;路由使用正则语法 一、动态路由 1.1 新建一个 user.vue文件 在views文件夹&#xff0c;新建一个user.vue文件 <template><div>用户{{id}}</div> </template><script setup>import { useRoute } from…

SAP ABAP Algorithm 计算一组数据样本的常用统计值(最大值/最小值 /平均值/中位数/众数/总数/方差/标准差 )

SAP ABAP Algorithm 计算一组数据样本的常用统计值(最大值/最小值 /平均值/中位数/众数/总数/方差/标准差 ) 引言&#xff1a; 这是统计学常用统计值的 ABAP 实现&#xff0c;这些统计值可以用在一些统计分析型报表中。 关键字&#xff1a;SAP ABAP Algorithm 算法 统计值 文…

Pytest测试框架(4):conftest.py文件应用---实现数据共享

conftest.py文件&#xff1a; pytest中的fixture是pytest用于将测试前后进行预备&#xff0c;清理工作的代码分离出核心测试逻辑的一种机制。但是我们更加希望的是在一个测试套件中&#xff0c;能够共享fixture的机制&#xff0c;这样一个测试套件里面的所有测试点都能够共同使…

Innodb存储引擎-idb文件格式解析

文章目录ibd 文件格式解析idb文件page类型和格式(File Header & Trailer)FIL_PAGE_TYPE_FSP_HDR格式Extent Descriptor格式Extent Descriptor链表管理Inode page链表管理FIL_PAGE_INODE格式Segment inode链表管理FIL_PAGE_TYPE_XDESFIL_PAGE_INDEX格式记录存储格式compact …

免费分享一个SSM商城管理系统,很漂亮的

大家好&#xff0c;我是锋哥&#xff0c;看到一个不错的SSM商城管理系统&#xff0c;分享下哈。 项目介绍 这是基于SSM框架开发的项目&#xff0c;前端用户界面采用 HtmlcssJavaScriptAjax开发&#xff0c;后台管理页面采用Easyui技术开发。 项目展示 1、主界面 2、商品详…

JDK Stream流式API使用总结

前言 JDK是Java Development Kit英文首字母大写缩写&#xff0c;是 Sun 公司&#xff08;已被 Oracle 收购&#xff09;针对 Java 开发员的软件开发工具包。自从 Java 推出以来&#xff0c;JDK 已经成为使用最广泛的 Java SDK。从JDK8版本开始新增了Stream流式API的功能&#x…

单片机毕业设计题目选题推荐

文章目录1前言2 如何选题2.1 不要给自己挖坑2.2 难度把控2.3 如何命名题目3 单片机 嵌入式 选题大全3.1 嵌入式方向3.2 算法方向3.3 移动通信方向3.4 学长作品展示4 最后1前言 &#x1f947; 近期不少学弟学妹询问学长关于单片机和嵌入式相关的毕设选题&#xff0c;学长特意写…

城镇居民医疗网站

开发工具(eclipse/idea/vscode等)&#xff1a; 数据库(sqlite/mysql/sqlserver等)&#xff1a; 功能模块(请用文字描述&#xff0c;至少200字)&#xff1a; 模块划分&#xff1a;通知类型&#xff0c;通知信息&#xff0c;区域信息&#xff0c;人员信息&#xff0c;缴费类型&a…

Java基础:使用 Optional 优雅地解决判空问题

我是 ABin-阿斌&#xff1a;写一生代码&#xff0c;创一世佳话&#xff0c;筑一览芳华。如果小伙伴们觉得不错就一键三连吧~ 声明&#xff1a;原作者&#xff1a;樊亦凡&#xff1a;juejin.cn/post/6844904154075234318 文章目录1 . 前言2 . 认识 Optional 并使用2.1 Optional …

非零基础自学Golang 第9章 结构体 9.6 结构体内嵌

非零基础自学Golang 文章目录非零基础自学Golang第9章 结构体9.6 结构体内嵌9.6.1 初始化结构体内嵌9.6.2 内嵌匿名结构体第9章 结构体 9.6 结构体内嵌 Go语言的结构体内嵌是一种组合特性&#xff0c;使用结构体内嵌可构建一种面向对象编程思想中的继承关系。 结构体实例化后…

[附源码]Python计算机毕业设计Django文曦家教预约系统

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

PCB四层板、六层板层叠推荐设计,常见层叠方案优缺点

笔者电子信息专业硕士毕业&#xff0c;获得过多次电子设计大赛、大学生智能车、数学建模国奖&#xff0c;现就职于南京某半导体芯片公司&#xff0c;从事硬件研发&#xff0c;电路设计研究。对于学电子的小伙伴&#xff0c;深知入门的不易&#xff0c;特开次博客交流分享经验&a…

Qt-Web混合开发-WebSocket客户端程序Web版本(9)

Qt-Web混合开发-WebSocket客户端程序Web版本&#x1f49a;&#x1f49c;&#x1f251;&#x1f351; 文章目录Qt-Web混合开发-WebSocket客户端程序Web版本&#x1f49a;&#x1f49c;&#x1f251;&#x1f351;1、概述&#x1f41b;&#x1f986;2、实现效果&#x1f605;&…

Java实战:hutool-db实现多数据源配置

❤️作者主页&#xff1a;IT技术分享社区 ❤️作者简介&#xff1a;大家好,我是IT技术分享社区的博主&#xff0c;从事C#、Java开发九年&#xff0c;对数据库、C#、Java、前端、运维、电脑技巧等经验丰富。 ❤️个人荣誉&#xff1a; 数据库领域优质创作者&#x1f3c6;&#x…

5G NR同频多beam检测方法

【摘 要】5G NR与LTE有诸多方面的不同,较突出的变化就是SSB内PSS序列和SSS序列设计与LTE明显不同,而且在每个SSB突发内会有多个SSB,多个SSB的出现增加了小区搜索的难度。由于频谱资源匮乏,所以采用同频方式组网,但因此相邻小区之间也会产生干扰,影响检测效率。同频检测技…

器乐文化网站

开发工具(eclipse/idea/vscode等)&#xff1a; 数据库(sqlite/mysql/sqlserver等)&#xff1a; 功能模块(请用文字描述&#xff0c;至少200字)&#xff1a; 1.用户模块 1)登录/注册 (通过前后端交互实现用户信息注册登 录) 2&#xff09; 在线支付充值虚拟币&#xff1b;&#…