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

这篇具有很好参考价值的文章主要介绍了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后,其目录如下:

Cmake编译《OpenGL超级宝典》第七版GitHub源码及常见错误解决,计算机视觉,编辑器

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

Cmake编译《OpenGL超级宝典》第七版GitHub源码及常见错误解决,计算机视觉,编辑器

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

Cmake编译《OpenGL超级宝典》第七版GitHub源码及常见错误解决,计算机视觉,编辑器

二、cmake工具下载

       cmake工具可以从Cmake官网处下载(Visual Studio其实已经默认安装好Cmake工具了,但是它无法指定Windos平台如Win32(X86)或X64,它默认设置为X64),链接如下:Download CMakehttps://cmake.org/download/        进入官网后,下载Windows x64 Installer即可,如图所示:Cmake编译《OpenGL超级宝典》第七版GitHub源码及常见错误解决,计算机视觉,编辑器

        下载完成后,以管理员身份运行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编译《OpenGL超级宝典》第七版GitHub源码及常见错误解决,计算机视觉,编辑器

四、Cmake编译GLFW源码

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

Cmake编译《OpenGL超级宝典》第七版GitHub源码及常见错误解决,计算机视觉,编辑器

 4.1 cmake-gui编译GLFW源码     

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

Cmake编译《OpenGL超级宝典》第七版GitHub源码及常见错误解决,计算机视觉,编辑器

 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时表明生成成功了,如图所示:

Cmake编译《OpenGL超级宝典》第七版GitHub源码及常见错误解决,计算机视觉,编辑器

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

Cmake编译《OpenGL超级宝典》第七版GitHub源码及常见错误解决,计算机视觉,编辑器

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

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

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

Cmake编译《OpenGL超级宝典》第七版GitHub源码及常见错误解决,计算机视觉,编辑器

Cmake编译《OpenGL超级宝典》第七版GitHub源码及常见错误解决,计算机视觉,编辑器

         把编译好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):

Cmake编译《OpenGL超级宝典》第七版GitHub源码及常见错误解决,计算机视觉,编辑器

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

五、Github源码编译

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

Cmake编译《OpenGL超级宝典》第七版GitHub源码及常见错误解决,计算机视觉,编辑器

Cmake编译《OpenGL超级宝典》第七版GitHub源码及常见错误解决,计算机视觉,编辑器      如果最后你出现了如上界面,那么恭喜你,你Github源码已经用cmake编译好了。请尽情阅读蓝宝书吧!!!

        文章来源地址https://www.toymoban.com/news/detail-816439.html

到了这里,关于Cmake编译《OpenGL超级宝典》第七版GitHub源码及常见错误解决的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数据库系统概念 第七版 中文答案 第3章 SQL介绍

      a. 查找计算机科学系中学分为3的课程的标题。 b. 查找所有由名为Einstein的教师教授的学生的ID;确保结果中没有重复项。 c. 查找任何教师的最高工资。 d. 查找所有薪水最高的教师(可能有多个薪水相同的教师)。 e. 查找在2017年秋季开设的每个课程部分的注册人数。 f. 查

    2024年01月22日
    浏览(51)
  • [高等数学]同济版高等数学【第七版】上下册教材+习题全解PDF

    laiyuan https://www.aliyundrive.com/s/5fpFJb3asYk 提取码: 61ao 通过百度网盘分享的文件:同济版高数教材及… 链接:https://pan.baidu.com/s/1gyy-GMGjwguAjYijrpC8RA?pwd=yhnr 提取码:yhnr The Calculus Lifesaver 普林斯顿微积分读本 英文版 链接:pan.baidu.com/s/1dD4Mua The Probability Lifesaver 普林斯顿概率论读本 链接

    2024年02月07日
    浏览(51)
  • 研究生考试 之 计算机网络第七版(谢希仁) 第一章 课后答案

    目录 研究生考试 之 计算机网络第七版(谢希仁) 第一章 课后答案 一、简单介绍 二、计算机网络第七版(谢希仁) 第一章 课后答案 1、 计算机网络向用户可以提供哪些服务? 2、 试简述分组交换的要点。 3、 试从多个方面比较电路交换、 报文交换和分组交换的主要优缺点。

    2024年02月04日
    浏览(63)
  • 【c语言基础题】— —第七版,可当作日常练习和期末复习,有奇效哟!

    🎃个人专栏: 🐬 算法设计与分析:算法设计与分析_IT闫的博客-CSDN博客 🐳Java基础:Java基础_IT闫的博客-CSDN博客 🐋c语言:c语言_IT闫的博客-CSDN博客 🐟MySQL:数据结构_IT闫的博客-CSDN博客 🐠数据结构:​​​​​​数据结构_IT闫的博客-CSDN博客 💎C++:C++_IT闫的博客-CSDN博

    2024年02月06日
    浏览(40)
  • 《高等数学》:推导第七版下册第十章第四节的“利用曲面的参数方程求曲面的面积“

    如果曲面   S   ,S, S 由参数方程: { x = x ( u , v ) , y = y ( u , v ) , z = z ( u , v ) ( u , v ) ∈ D begin{cases}x=x(u,v), \\\\ y=y(u,v), \\\\ z=z(u,v)end{cases} quad (u,v) in Dquad ⎩ ⎪ ⎨ ⎪ ⎧ ​ x = x ( u , v ) , y = y ( u , v ) , z = z ( u , v ) ​ ( u , v ) ∈ D 给出,其中   D   ,D, D 是一个平面有界闭区域

    2024年02月05日
    浏览(52)
  • 耗时一个月!期末熬夜复习整理 | 计算机网络(谢希仁第七版)大合集【知识点+大量习题讲解】

    期末计网满绩计划 教材:计算机网络(第七版)谢希仁版 第一章概述 第二章物理层 第三章数据链路层 第四章网络层 第五章运输层 第六章应用层 第七章网络安全 小生凡一,期待你的关注。

    2024年02月11日
    浏览(48)
  • Wireshark IP实验—Wireshark Lab: IP v7.0(计算机网络自顶向下第七版)

    修改发送数据包的大小 跟踪的地址为 www.ustc.edu.cn text{www.ustc.edu.cn} www.ustc.edu.cn 由于自己抓的包比较凌乱,分析起来比较复杂,所以使用作者的数据包进行分析 Select the first ICMP Echo Request message sent by your computer, and expand the Internet Protocol part of the packet in the packet details window.Wh

    2024年02月04日
    浏览(38)
  • Wireshark TCP实验—Wireshark Lab: TCP v7.0(计算机网络自顶向下第七版)

    What is the IP address and TCP port number used by the client computer (source) that is transferring the file to gaia.cs.umass.edu? 根据数据包中的 tcp-ethereal-trace-1 ,其源 IP 地址为 192.168.1.102 192.168.1.102 192.168.1.102 ,端口号为 1162 1162 1162 。 What is the IP address of gaia.cs.umass.edu? On what port number is it sending and re

    2023年04月09日
    浏览(45)
  • Wireshark HTTP实验—Wireshark Lab: HTTP v7.0(计算机网络自顶向下第七版)

    Is your browser running HTTP version 1.0 or 1.1? What version of HTTP is the server running? 浏览器与服务器的版本均为 H T T P / 1.1 HTTP/1.1 H TTP /1.1 。 What languages (if any) does your browser indicate that it can accept to the server? 能接受简体中文以及英文。 What is the IP address of your computer? Of the gaia.cs.umass.edu serv

    2024年02月08日
    浏览(40)
  • opencv4.7.0 win10 源码编译 vs2019 cmake

    步骤: ① 编译opencv源码;注意几个下载内容;根据cmakedownloadlog.txt中的说明 ② 生成opencv.sln,先使用ALL_BUILD生成 ③ 然后对install工程进行生成 ④ 使用:离线使用,opencv文件夹 install的include lib bin 等复制到当前工程下的文件夹;然后配置属性     配置属性时注意一下路径,工

    2024年02月04日
    浏览(68)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包