OpenGL运行环境搭建学习01篇【Related to https://learnopengl-cn.github.io/】
  • 别人给你发过来一个完整的项目压缩包,如何看懂并且在自己电脑上跑起来(这一步感觉以后很可能会被ai代替,不过可以培养培养思维)
  • visualstudio界面基础扫盲

一、前文环境搭建链接:

OpenGL运行环境搭建学习00篇【Related to https://learnopengl-cn.github.io/】-CSDN博客

二、常见项目包目录:

我们对于文件夹至少有一些基础的理解

  1. "src", "lib", "include",分别用于存放源码、库文件和头文件。
  2. 其中,"lib"文件夹下"debug", "release"文件夹,分别存放debug版本和release版本所使用的.lib文件。
  3. build:如果你使用cmake,cmake的.sln会在此目录下,涉及路径代码会在此查找。

所以我们用的到的就是"src", "lib", "include","build''这四个文件夹

三、资源使用(现成项目)

cmake3.5+,32位,VS2019

  1. visualstudio2019版,2019版配置基本类似,就是注意版本要选2019
  2. 32位配置
  3. 安装CMake,要求 CMake版本至少为3.5,用于项目构建

camke下载

CMake是一个跨平台的项目构建工具,简单说就是:帮你自动生成各种编译器能识别的项目文件

CMake 根据你的描述(CMakeLists.txt),自动生成适合当前平台的构建配置文件(在 Windows 下就是 .sln + .vcxproj),里面已经包含了所有编译所需的配置信息。

(也就是它相当直接于帮我们完成环境配置+代码载入了)

Download CMake:

依旧老位置D盘

按自己理解尝试使用2022运行:

手动创建新项目sln复制式:

新建一个空项目,准备项目目录用来复制:
选中然后下一步

起名字并在项目目录下把作业文件夹"src", "lib", "include"以及"CMakeLists"复制过来

大小文件夹

运行CMake工具:
将CMakeList.txt所在目录输入到源码目录一栏("Where is the source code: ")。依照习惯,在恰当位置建立文件夹"build"用以存放生成的文件。将build文件夹路径输入到下一栏中。随后点击Configure按钮,进行生成配置。

按要求选32位,然后finish。出现Configuring done之后,记得点击Generate生成文件。
最后build文件夹有以下目录:

用VS2022打开CGAssignment1.sln文件,会启动三个项目,如下所示,分别是ALL_BUILD、 CGAssignment1和ZERO_CHECK,我们只需关注CGAssignment1项目

第一次打开默认启动的项目是ALL_BUILD,因此需要将CGAssignment1设置为启动项目,鼠标箭 头移到CGAssignment1上并单击鼠标右键,在弹出的选项中点击设为启动项目即可。

由于本框架代码运算量大,我选择在Release模式下编译该项目, 在需要Debug的时候再切换到Debug模式,编译成功并运行后将弹出一个窗口,表示构建成功。可通过点击窗口左上角的x按钮或者按键盘的 ESC键退出窗口,终止程序运行。

提示缺少sdl2,在此处加SDL2.dll,但是失败,先尝试src代码行不行(应该还是要在属性里面添加)


(这个是visualstudio内窗口右击项目-->属性-->

win系统特性:

Windows 的运行时 DLL 搜索机制决定的。程序启动时,系统按这个顺序找SDL2.dll

  1. exe 所在的目录(最优先

  2. 系统目录(C:\Windows\System32

  3. PATH 环境变量里的目录

所以如果你的build/Debug/里只有CGAssignment1.exe,没有SDL2.dll,系统就找不到,直接弹窗报错。

所以我们把SDL2.dll复制到build文件中的"Release"和"Debug"下。

(此处用项目2图做例图)

此处惊鸿一瞥原文件夹目录,大佬提供的文件夹里面有一个build文件夹长这样:

这个并不像是我们使用过cmake工具以后的build目录,几乎只有一些类似我们之前环境配置的外部文件?

已知build里面"Release"和"Debug"有必须使用的文件,那么这个"model"也不简单:

这个是项目要加载的 3D 模型文件,会在main.cpp里面调用,而且使用的是目录查找,这个文件目录结构建议保留。

所以我们应该把大佬给的整个build也复制过去 对吗?

ok啊,复制过去之后再cmake,编译的时候确实正常了

但是cmake也会生成.sln文件----->有种多此一举的感觉。

我们和代码打交道也知道很多时候目录是可以自行加包降级的,而且cmake生成的sln和我们手动生成的几乎同级,都需要调用外面的头文件、库文件和源文件。手动生成的这个不仅没有配置好项目的环境,对比cmake的,它代码都需要手动链接。

也就是说如果我们收到的是大佬精心准备的干净项目包,我们可以直接保留原文件备份之后在原文档目录直接cmake就行,不用在visualstudio里面新建项目。

原项目资源文件夹cmake一键式:

原项目文件内容展示

为了方便管理,我把项目放到了下载VisualStudio时项目方案的位置,避免重名我改成了2

运行cmake:
此处同样直接把包含CMakeList.txt的项目方案目录输入到源码目录一栏("Where is the source code: ")。将build文件夹路径输入到下一栏中。随后点击Configure按钮,进行生成配置。

按要求选32位,然后finish。出现Configuring done之后,记得点击Generate生成文件。

这次build里面生成如下

打开sln文件之后,我们将CGAssignment2设置为启动项目,鼠标箭 头移到CGAssignment2上并单击鼠标右键,在弹出的选项中点击设为启动项目即可。

release之后,其目录为:

运行很顺畅操作也很简单。

四、VisualStudio界面使用

一、顶部工具栏

这个按钮既不是单纯的 Build,也不是单纯的编译——它是"启动调试"(Start Debugging)。并且是调试的我们设为启动项目的。

这个按钮 = "先 Build(如果需要),再启动调试运行"。

平时用 Debug(能断点调试);交作业前可切 Release 测试

但如果想要快,也可平常直接Release,需要的时候再debug

二、解决方案资源管理器(右侧/左侧)

这里的代码文件一般都是链接关系,如果你是自行添加,需要注意保护好本地原文件,因为这里右击添加文件是定向到你所选,并不会在我们的项目文件夹内部生成自己的源文件。

三、底部窗口:输出 / 错误列表

  1. 错误列表有几个报错

  2. 双击错误,VS 自动跳转到对应代码

五、总结:

visualstudio核心的作用是编译(Integrated Development Environment集成开发环境

build在项目目录内的作用

成熟项目和环境搭建构建项目的区别

visualstudio(IDE系列):链接库 + 编译 cpp --> exe

build:存放编译后的文件和构建工具的文件夹,它包含大量的临时文件和中间文件,并且可以通过源代码重新构建。但是很多时候内置的项目方案需要它准备相应目录和文件

首先,别人提供的成熟项目文件等于我们的解决方案文件夹(只不过不一定包含可以运行的.sln文件),我们可以通过像搭建环境一样将里面的include和lib装载到一个".sln"文件夹里,这样会生成与“lib”等并列的sln文件;也可以通过cmake一步生成(选择生成visualstudio项目)几乎可以直接编译(环境、头文件、源文件都装载好)的sln文件,这样会在新生成的"build"文件夹内生成sln文件目)

附加(关于环境准备使用cmake对source code编译粗想法)

翻译一下就是,我们下载GLEW等的源码,我们自行编译需要的形式(静态/动态)

通过前面的摸索我们会知道lib、build里面debug和release这两个一般存在于sln所在文件夹之内(与sln平级或者低级,不过也可以通过修改exe的输出目录,一般不改,这个可以用来勘误自己的项目)。

前置环境配置我们知道lib它会有debug和release之分,所以,用cmake生成GLEW或者GLFW的sln之后,我们只需要确定项目是静态编译的(/MT)还是动态编译的(/MD

然后通过Build Solution获取我们生成的空项目lib依赖里面的debug和release(更新版)

(具体位置看情况,找名字不会错)

有时间会实操一下

最后

因为2022可以运行成功,我没有下载2019,基本配置都是一样的,祝使用顺利。