0


Cmake编译《OpenGL超级宝典》第七版GitHub源码及常见错误解决

一、前言及Github源码下载

    《OpenGL超级宝典》第七版是一本关于OpenGL及3D图形编程的经典入门指南,由美国的格雷厄姆·塞勒斯、小理查德·赖特和尼古拉斯·海梅尔合著,人民邮电出版社出版,被称为"OpenGL蓝宝书",与《OpenGL编程指南》红宝书相对应,全书内容分为三大部分:
  • 第一部分包括第一章到第四章,主要介绍OpenGL的基础知识,如图形管线的概念,我们的第一个OpenGL程序,3D图形中的数学知识等。

  • 第二部分重点介绍OpenGL的一些高级功能,如顶点处理与绘图命令、基元处理片段处理与帧缓冲等。

  • 第三部分则涵盖了如何使用OpenGL进行编程所需要的主要知识,以及如何设置3D渲染环境,创建基本对象和光线并对他们进行着色。此外,书中也详细地介绍了使用最新版本的OpenGL进行编程所需要的主要知识。

      其GitHub源码下载链接如下:
    

openglsuperbible/sb7code: Source code and supporting material for the 7th Edition of OpenGL SuperBible (github.com)https://github.com/openglsuperbible/sb7code 如果GitHub无法打开,也可以从异步社区官网相关配套资源下载(用手机号注册后即可免费下载,我建议直接在异步社区下载配套资源):OpenGL超级宝典(第7版)-异步社区-致力于优质IT知识的出版和分享 (epubit.com)https://www.epubit.com/bookDetails?id=UB723698d913f6e 下载好Github源码sb7code-master后,其目录如下:

   在异步社区下载好superbible7-media配套资源后,其目录如下:

    把这三个文件夹复制到sb7code-master源码的bin/media里面,如图所示:

二、cmake工具下载

   cmake工具可以从Cmake官网处下载(Visual Studio其实已经默认安装好Cmake工具了,但是它无法指定Windos平台如Win32(X86)或X64,它默认设置为X64),链接如下:Download CMakehttps://cmake.org/download/        进入官网后,下载Windows x64 Installer即可,如图所示:![](https://img-blog.csdnimg.cn/direct/d9bc2b20b6934f7d8b46a0d577d1c0f5.png)

    下载完成后,以管理员身份运行msi文件,之后会弹出安装界面,之后一直保持默认设置即可,不过**有一步是是否添加进环境变量,那一步你可以选择为当前用户或所有用户添加至环境变量**(否则你将需要自己配置环境变量)。

三、GLFW工具包下载及LNK2019错误解决

    其实Github源码已经自带**GLFW-3.0.4,但是由于代码问题,一直会爆 LNK2019:** 无法解析的外部符号 __imp_glOrtho,error LNK2019: 无法解析的外部符号 __imp_glRecti,error LNK2019: 无法解析的外部符号 __imp_glViewport,error LNK2019: 无法解析的外部符号 __imp_glGetIntegerv等相关LNK2019的错误,所以我们需要直接下载**GLFW3.3.9工具包**,下载链接如下:

Download | GLFWhttps://www.glfw.org/download.html 这里我们下载Source package源码,因为我们后面可能需要直接用cmake编译,如图所示:

四、Cmake编译GLFW源码

    接下来我们需要用cmake编译下载好的GLFW3.3.9压缩包,解压后把它复制到源码的extern文件夹内,如图所示:

4.1 cmake-gui编译GLFW源码

    之后打开cmake-gui界面,之后进行如下配置(之后需要更改为你源码extern/glfw-3.3.9所在目录,原本文件夹内没有build文件夹,你需要自己新建或者直接在你目录后输入/build,之后它会提醒你没有该文件夹是否新建,直接点确定即可):

4.2 LNK4272和LNK2019 无法解析的外部符号 __imp_wglGetProcAddress解决

    点configure按键,在接下来的界面中生成器选择Visual Studio 17 2022(或者也可以选择你安装的生成器),在平台选择Win32,不知道说明原因如下选择x64,之后在Visual Studio编译源码会一直警告**LNK4272: 库计算机类型“x86”与目标计算机类型“x64”冲突,并报LNK2019 无法解析的外部符号 __imp_wglGetProcAddress,函数 get_proc 中引用了该符号的错误**,其实你看警告就知道了,你源码库其实是在32位计算机编译的(毕竟是2016年的书了),但是你现在是64位计算机,因此我们这里直接选择Win32就行。

   随后保持默认设置,点击finish,最后提示configure done,之后在点击configure按你所需进行更改,最后点击generate当看到generate done时表明生成成功了,如图所示:

    点击Open Project按钮,它会帮你在Visual Studio打开,之后依次点击生产>生产解决方案,如下图所示:

4.3 无法启动程序 xxx, 拒绝访问问题解决

    等到它输出区提示成功后。接下来,你可以随机测试一下源码,比如这里我选用它example下的wave解决方案,如果你直接打开wave解决方案下面的Source Files目录下的wave.cpp,然后直接运行的话,它会报错**无法启动程序 glfw-3.3.9(build\Win32\Debug\ALL BUILD"), 拒绝访问。**

    因此,**你需要先右键该解决方案然后选择设为启动项目**,如下图所示,注意是解决方案(就是有visual studio紫色图标的文件,如下图所示),在Visual Studio中这就相当于项目文件,之后点运行就会出现波浪的窗口,到此表明GLFW就成功编译了:

     把编译好GLFW-3.3.9工具包目录下的build/src/Debug下的glfw3dll.lib重命名位glfw3_d.lib,并复制到源码的lib目录下,如图所示,**注意大小**是1108KB,如果1155KB,表明你还是cmake编译开始的时候选择的是X64而不是Win32(如果你在configure配置界面中选择了BUILD_SHARED_LIBS,那么可能它一些已经有的lib就不编译了,所以有55KB,而且名字叫做glfw3dll.lib,同理改名为glfw3_d.lib):

        到此为止,GLFW-3.3.9已经配置成功了,接下来就是Github源码的cmake编译

五、Github源码编译

     同样的道理,在cmake-gui选择你的源码所在路径以及输出路径之后,选择configure选择Win32,配置完成后点击generate,在提示生成成功后,再点击Open Project,之后在打开的Visual Studio界面中点击生产解决方案,之后随机选择代码进行测试(这里我们选用alienrain),步骤如下图所示:

如果最后你出现了如上界面,那么恭喜你,你Github源码已经用cmake编译好了。请尽情阅读蓝宝书吧!!!


本文转载自: https://blog.csdn.net/m0_64025974/article/details/135478478
版权归原作者 世溷浊嫉贤 所有, 如有侵权,请联系我们删除。

“Cmake编译《OpenGL超级宝典》第七版GitHub源码及常见错误解决”的评论:

还没有评论