参考别人的文章:https://blog.csdn.net/brahmsjiang/article/details/78572141,但是这篇文章对编译过程中出现的各种问题没有说明,因此特此记录下。
一、安装VS2017
(1)下载网址:https://visualstudio.microsoft.com/zh-hans/vs/
(2)安装过程参考:https://blogs.msdn.microsoft.com/vcblog/2017/04/21/getting-started-with-visual-studio-for-c-and-cpp-development/
二、下载《OpenGL ES3.0 Programming guide》示例代码:
https://codeload.github.com/danginsburg/opengles3-book/zip/master
三、下载mail opengl es模拟器(我也是下载32位的:Mali_OpenGL_ES_Emulator-v3.0.2.g694a9-Windows-32bit):
http://malideveloper.arm.com/resources/tools/opengl-es-emulator/
四、解压Mali_OpenGL_ES_Emulator-v3.0.2.g694a9-Windows-32bit
(1)将include目录下的四个文件夹:EGL, GLES2, GLES3, KHR都拷贝到VS2017的安装路径下:C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.15.26726\include
(2)将libEGL.lib,libGLESv2.lib,libMaliEmulator.lib拷贝到:C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.15.26726\lib\x86
(3)将除去include目录剩余的都拷贝到:C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.15.26726\bin\Hostx86\x86
(4)将libEGL.dll,libGLESv2.dll,libMaliEmulator.dll, openglessl目录及log4cplus.dll拷贝到C:\Windows\SysWOW64
五、准备工作作完可以开始编译sample code了
(1)打开VS,新建一个空的工程。将opengles3-book-master\Chapter_2\Hello_Triangle\Hello_Triangle.c和opengles3-book-master\Common目录拷贝到工程目录下。并将代码源文件添加到工程中
(2)将opengles3-book-master\Common\Include目录添加到附加路径,点击项目-》属性-》C/C++-》通用(General)-》Additional Include Directiories然后编辑添加。如果没添加路径会报esUtil.h头文件找不到的问题。
(3)点击preprocessor预处理器选项,将";_CRT_SECURE_NO_WARNINGS"字段添加到Preprocessor Definitions里。否则会出现:fopen: This function or variable may be unsafe......的错误。
(4)将C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.15.26726\lib\x86添加到连接器的lib路径,否则会报找不到libEGL.lib类似的错误。
(5)修改连接器Input附加依赖项,加入libGLESv2.lib;libEGL.lib;libMaliEmulator.lib
(6) 编译链接的时候还可能遇到类似Loaded 'C:\Windows\System32\kernel32.dll', Cannot find or open the PDB file的问题
解决方法:点击工具-》选项-》Debugging-》Symbols将Microsoft Symbol Servers勾选。
(7)编译运行,选择X86,点击绿色箭头运行。
运行效果如图:
最后记录下学习opengl的网址:
https://learnopengl.com/
https://learnopengl-cn.github.io/
http://nehe.gamedev.net/
https://www.khronos.org/registry/OpenGL-Refpages/es3.0/