资讯详情

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,以前是win设置在32下。x64重新设置,路径还是那些路径,不麻烦,但下次要注意。

运行——dll

加上lib以后报错:

dll,操作时使用,说明链接正常。

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

试试就好。……

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

说明这两个环境配置成功。

一些疑问

网页1

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

那么,这种环境变量到底是干什么的呢?

根据链接中的说法,配置.DLL文件有两种方法

  1. 复制粘贴法。dll放在,32位的dll放在
  2. 设置环境变量可能是你问题的答案

引用自:

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

网页2

关于32位和64位dll为什么看起来像反,解释在这里:

为什么一个明明叫?System32文件夹有64个系统文件,其中一个显然被称为SysWow32位系统文件夹在64位文件中?既然是64位系统,为什么不能有呢?System64和System32这样的文件夹呢?

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

如果你写了一个非常好的32位应用程序,想把它变成64位的应用程序,以充分利用64位处理器带来的新处理能力。你一定认为这不就是让64位编译器再次编译完成的吗?你可能会发现这不是骨感的现实。你突然发现,在你的程序中,为了一些你记不起来的原因,把它放在一边System这个文件夹,写在你的程序里。而这个System32中的32,让你很不安。试着操作你的程序,却发现一切正常。为什么呢?这是Windows系统的另一个兼容性努力:现有的32位应用程序可以编译成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

标签: 24k碳纤维电阻

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台