VS2019下的GAMES101作业环境配置

很久很久以前,好像看过这个: 

GAMES101-现代计算机图形学入门-闫令琪_哔哩哔哩_bilibili

里面好像还有一个实验,当时只是看了看视频里的热闹,并没有写实验。

现在想想,还是写一写的好,万一以后用上了呢?

虽然是个24K纯小白,估计也学不会,但是,我可以自我感动式学习。

 为什么要自我感动式学习?因为正儿八经的学习我不会啊……智力有限。

一些相关的链接:

环境配置的视频:

计算机图形学-GAMES101作业-在Visual Studio中搭建Eigen和OpenCV的环境_哔哩哔哩_bilibili

按这个视频来的话,需要配置两个环境,opencv和eigen。 

【eigen,我猜测它是用来进行与矩阵有关的计算的;opencv,我猜它是用来显示软光栅的渲染结果的】

课程主页:

GAMES101: 现代计算机图形学入门 (ucsb.edu)

作业的合集链接:

往期作业汇总帖 – 计算机图形学与混合现实在线平台 (games-cn.org) 

作业0链接:

作业0发布公告 – 计算机图形学与混合现实在线平台 (games-cn.org)

作业0好像是配置虚拟机的。。

主要就用了eigen库。。没用opencv。

#include<cmath>
#include<eigen3/Eigen/Core>
#include<eigen3/Eigen/Dense>
#include<iostream>

 上面那个视频里是用作业1配置的环境,作业1配置了eigen和opencv,它的环境包括了作业0的环境,所以直接跳过这个作业0吧。

作业1链接:

作业1发布公告 – 计算机图形学与混合现实在线平台 (games-cn.org)

 大概是这么些代码

用了eigen和opencv库 

#include "Triangle.hpp"
#include "rasterizer.hpp"
#include <iostream>

#include <eigen3/Eigen/Eigen>
#include <opencv2/opencv.hpp>

配置的过程,我觉得和配置GLFW的过程应该差不多。

【编译——链接——运行】分别对应【include——lib——dll】

所以,按上面那个视频来吧

环境配置

原来头文件什么的,可以直接拖……

然后,把窗口搞乱了,就恢复了默认的窗口布局,但是意外的出现了一个什么制表符

 怎么关的还不知道……

 百度了一下,明白了

(37条消息) 【VS】s2019左侧栏 制表符是什么 怎么关闭制表符栏_gongfpp的博客-CSDN博客_vs制表符怎么关

它就类似,浏览器的tab栏,平常是在上边而不是左边。再次放到上边就可以了。

 小插曲完了,那末,它俩怎么配置?

 跟着报错来吧

首先,报的错是关于eigen的,那末,先配置eigen吧

 Eigen的配置

(37条消息) VS2019正确的安装Eigen库,解决所有报错(全网最详细!!)_MaybeTnT的博客-CSDN博客_vs2019配置eigen

大概是,先下载下来,然后,include一下,就完了。

官网在这里:

Eigen

然后,单纯的下载一下:

 然后解压到一个include文件夹里,解压了以后应该还要改个名字

 改名字,设置包含目录为上面的include文件夹

 编译,正常了

 OpenCV的配置

首先,如何下载这个opencv?

Releases - OpenCV

除了上面那个视频,还有配置的教程吗?有的

(37条消息) OpenCV配置教程_杨大熊的代码世界的博客-CSDN博客_opencv配置

首先,啥教程也不看,按着感觉来。下载提取以后:

编译——include

直接设置一下include目录路径:

链接——lib 

 这个报错,显示的不大对劲……

 按这个链接里的方法设置一下:

为什么我的vs2010 的没有错误列表_百度知道 (baidu.com)

 错误列表就出现了,看着就正常了

有了错误列表,就可以点击跳转了。 这个错,链接时的错误,可能是lib的错。也说明编译用的include已经正常了。

链接器工具错误 LNK2019 | Microsoft Docs

 可能是少这个路径下的这个lib,加上试一试

 

注意这个lib是X64的,而之前都是在win32下设置的。。不兼容的,调成x64重新设置一下就可以了,路径还是那些路径,不麻烦的,但是下次要注意。

运行——dll

加上lib以后,报错:

dll,是运行时用的呐,说明链接正常了。

它少的那个dll,是不是这个?

 拷过去试一试就好了嘛……

 虽然我不知道这个程序在做什么(我是纯小白),但它正常运行了

说明这两个环境都配置成功了

一些疑问

网页1

有的网友说,配置opencv,需要设置环境变量,我没设置,也正常运行了。

那末,这个环境变量,到底是干什么的?

按这个链接里的说法,配置.DLL文件有两种方法

  1. 复制粘贴大法。64位的dll放在C:\Windows\System32,32位的dll放在C:\Windows\SysWOW64
  2. 设置环境变量【可能就是你那个问题的答案】

 引用自:

(37条消息) OpenCV环境变量配置_风吹夏天的博客-CSDN博客_设置opencv环境变量

 网页2

 关于那个32位和64位dll为什么看着像反的,解释在这里:

为什么一个明明叫System32的文件夹装的是64位的系统文件,而一个明明叫SysWow64的文件夹装的却是32位的系统文件呢?既然是64位的系统,为什么不能有System64和System32这样的文件夹呢?

这个问题问得很好。答案也很简单:人在江湖,身不由己。

如果你写了一个很牛的32位的应用程序,现在,你想把它变成64位的应用程序,以更充分地利用64位处理器所带来的新的处理能力。你肯定觉得,这不就是让64位编译器编译一遍就完了的事儿么?可能你发现,这并不是骨感的现实。你突然发现,你的程序里,为了某些你已经想不起来的原因,把System32这个文件夹,写死在了你的程序里。而这个System32中的32,让你很不安。你尝试着运行了你的程序,却发现一切正常。为什么呢?这是Windows系统的另一个兼容性方面的努力:让一个已有的32位应用程序,不加修改或者尽可能少地加以修改,便可以被编译成64位应用程序并在64位Windows上运行。其实,把System32这样的路径,写死在程序里,并不是一个个案。所以,为了保证这些写死了路径的应用程序可以顺利地过渡到64位,Windows最后还是决定让64位的系统文件放在System32的文件夹下。而让32位的系统文件,搬到了SysWow64中去。

你肯定会想,那让32位搬到SysWow64中去以后,那些写死在32位应用程序中的System32怎么办?答:Windows会给他们转向到SysWow64中去。那让64位中的System32转向到System64不也是一样么?真的一样么?不一样么?真的一样么?不一样么?真的不一样。

作为64位Windows操作系统,当然是希望能充分发挥64位处理器的潜力,让应用程序更有效率地运行。如果在运行64位应用程序时,总要检查是否需要转向,势必影响程序运行效率。所以,不能给64位应用程序做没有必要的转向,如果说必须要转,那就只能转32位应用程序了。是的,没有办法,在64位操作系统中,32位应用程序要做一些小的牺牲。

此外,为了保证32位应用程序不与64位应用程序相冲突,除了System32文件夹外,注册表也需要为32位和64位提供两套,也需要让32位的应用程序在必要时重定向。

所以SysWow64文件夹,是64位Windows,用来存放32位Windows系统文件的地方。

 

 引用自:

syswow64_百度百科 (baidu.com)

System32_百度百科 (baidu.com)

(20 封私信 / 31 条消息) 64位windows为什么不把system32改成system64 ? - 知乎 (zhihu.com)

 (37条消息) 什么是SysWow64_congwulong的博客-CSDN博客

网页3

关于环境变量

 

 引用自:

环境变量 | 白月黑羽 (byhy.net)

网页4

 关于DLL的搜索顺序

 MSDN里也有的:

这个GetSystemDirectory函数,和上面关于兼容性与32与64的吐槽,好像还呼应上了…… 

引用自:

(20 封私信 / 31 条消息) 为什么dll文件放在别的程序目录就能被加载? - 知乎 (zhihu.com)

动态链接库搜索顺序 - Win32 apps | Microsoft Docs

### 配置概述 为了在Windows平台上使用Visual Studio 2022配置GAMES101课程作业环境,主要涉及安装并设置开发工具链以及第三方库。这包括但不限于安装Visual Studio 2022本身、通过vcpkg管理依赖项如Eigen和OpenCV等。 ### 安装Visual Studio 2022 确保已安装最新版本的Visual Studio 2022,并选择了C++工作负载选项,在安装过程中勾选如下组件: - 使用C++的桌面开发 - .NET Desktop Development (如果计划集成.NET项目) 这些选择能够提供必要的编译器支持和其他辅助功能[^4]。 ### 设置vcpkg作为包管理器 vcpkg是一个跨平台的C/C++包管理系统,可以简化外部库的获取过程。按照官方指南完成其安装后,可以通过命令行轻松添加所需的库文件至当前项目中[^1]。 #### 初始化vcpkg 首次运行前需执行初始化操作: ```bash .\vcpkg integrate install ``` 此指令会将全局用户环境变量更新以便于后续项目的自动识别路径。 ### 导入Eigen库 对于Eigen这样的模板库来说,仅需将其头文件夹加入预处理器包含目录即可正常使用。利用vcpkg安装非常便捷: ```bash vcpkg install eigen3:x64-windows ``` 上述命令指定架构为64位窗口系统下的Eigen版本[^3]。 ### 添加OpenCV支持 同样地,借助vcpkg处理复杂的多媒体处理库OpenCV变得异常简单: ```bash vcpkg install opencv[xfeatures2d,contrib]:x64-windows ``` 这里额外指定了某些非核心模块以满足特定需求场景下更广泛的功能覆盖范围[^2]。 ### 创建与配置新项目 启动Visual Studio 2022创建一个新的控制台应用程序或其他适当类型的解决方案。接着修改`CMakeLists.txt`文件引入由vcpkg托管的资源描述符: ```cmake find_package(Eigen3 REQUIRED CONFIG) target_link_libraries(${PROJECT_NAME} PRIVATE Eigen3::Eigen) find_package(OpenCV REQUIRED) include_directories(${OpenCV_INCLUDE_DIRS}) target_link_libraries(${PROJECT_NAME} ${OpenCV_LIBS}) ``` 这段脚本告诉构建系统在哪里寻找所需静态/动态链接库及其对应的公共接口定义位置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值