VS2015安装配置assimp和glm

最近需要完成图形学的MonteCarloPathTracer的作业。经了解,Assimp能够导入很多种不同的模型文件格式,它会将所有的模型数据加载至Assimp的通用数据结构中。从而不论导入的是什么种类的文件格式,都能够将我们从这些不同的文件格式中抽象出来,用同一种方式访问数据;而Glm是第三方数学库,可用于图形变换。接下来本文将详细介绍二者的安装与配置。


1 Glm安装

Glm安装十分简单,无需编译,下载即可。解压后进入文件夹会看见一个glm子文件夹,其包含所涉及的头文件,稍后在配置时放到include文件夹中即可。
下载链接:https://github.com/g-truc/glm

2 Assimp安装

Assimp安装较为繁琐。

1)下载Assimp源文件(source code),解压后进入文件夹,新建bulid文件夹以用于后续cmake编译。

下载链接:https://github.com/assimp/assimp

2)下载Boost,这样编译的Assimp功能更全面。

下载链接:https://www.boost.org/users/download/

3)CMake编译,第一步点击 Add Entry,将boost库添加进去;第二步选择下载的assimp源码目录;第三步选择新建的build文件夹目录;第四步点击configure,在弹窗里选择相应的VS版本后,编译就开始了,configure下面的框内会输出编译的过程,这个时候如果提示could not locate DirectX,说明电脑内没有安装DirectX,需要下载DirectX,安装好之后,再次点击configure就会显示configuring done了,第五步点击Generate,此时assimp已经编译完成。

(安装DirectX过程中可能会报s1023错误,解决链接:https://jingyan.baidu.com/article/84b4f565ec699f60f6da32c1.html)

VS2015安装配置assimp和glm_第1张图片

第六步点击Open Project,在VS中生成解决方案,等待一段时间可能就会看到成功几个,失败0个,跳过几个,至此幸运的人就大功告成了。但是我这个踩坑体质怎么可能如此简单的就成功了呢,当然生成失败了。

4)生成失败没关系,我执着啊!

遇到的第一个问题 error MSB3073:命令“setLocal".........VCEnd 已退出为1。

我发现网上有说,可以依次更改子项目的项目属性,将”生成事件“里”后期生成事件“,”在生成中使用“选项改为否,一开始我不想这么弄,觉得逃避问题,根本没有解决;

我又发现有人说这是因为在Cmake编译时,CMAKE_INSTALL_PREFIX设为C盘了,所以不是管理员没有权限在C盘进行复制查找等工作,所以报错,我就把这项改为D:/Assimp了,重新编译生成,好滴,没有解决,

我又发现,有人说D:/Assimp中的Assimp文件夹要自己建,虽然我很怀疑,难道程序不会自己建文件夹么,但没关系,我自己建,重新编译生成,好滴,没有解决,我就不信了,我再加上以管理员的身份再运行,好滴,还是没有解决。

我屈服了,我选择逃避问题,把”在生成中使用“改为否,好滴,还是没有解决,我再屈服,我把”预先生成事件“里”在生成中使用“也改成否,这个时候MSB3073不报错了,但是有一堆LNK2001,LNK2019的错误,还是失败。

VS2015安装配置assimp和glm_第2张图片           VS2015安装配置assimp和glm_第3张图片

此时我重新思考,我一直以为生成失败的原因是MSB3073,现在看来会不会是因为链接错误产生的3073问题,源头在于LNK2019,我又发现网上有一个相似错误是因为Cmake没有选择正确的 ZLIB 库造成的。我编译加载的zlib库是anconda的(如上左图),难道不行,那让cmake自己编译吧(如上右图,勾选此项重新编译生成,CMAKE_INSTALL_PREFIX的设置也是在这里的),编译时还报了红色警告,zlib库编译时也有几个库说没有找到,很虚啊,但还是打开工程重新生成,这个时候竟然生成成功了。像下图这种情况,我看网上其它人就认为是成功了,之后做作业,加载模型的确没有什么问题了。

VS2015安装配置assimp和glm_第4张图片

ps:我看网上有人说上图”无法打开文件gtest.lib“采取release模式就可以解决了,我是采取debug,win32的模式。

3 Glm和Assimp的配置

之前配置过opengl的,应该知道都是同样的方式,将头文件、动态链接库、静态链接库放到相应位置,再在项目属性里告诉项目查找位置就可以了。我这里配置了一种一次性的,只针对单个项目(你也可以直接放到VS的安装目录里就可以永久性了)

1)在项目里新建include文件夹(放置头文件)、lib文件夹(放置静态链接库)。

VS2015安装配置assimp和glm_第5张图片

2)打开下载的glm文件夹,会发现有个glm子文件;再打开下载的assimp文件夹,打开与bulid同级的dinclude文件夹,会发现有一个assimp子文件夹,将这两个子文件夹放到项目中的include文件夹中。

3)再打开下载的assimp文件夹中我们新建的bulid文件夹,里面有个code文件夹,之后release编译就打开release文件夹,debug编译就打开debug文件夹,将里面的assimp-vc140-mt.dll放到项目exe程序的位置,assimp-vc140-mt.lib放到项目中的lib文件夹中。

4)设置项目属性,include路径设置到VC++目录中的包含目录;lib路径设置到链接器输入中的附加依赖项中,注意此处要把文件名也打进去。至此才能够真正使用Glm和Assimp!

VS2015安装配置assimp和glm_第6张图片

 

VS2015安装配置assimp和glm_第7张图片

 

你可能感兴趣的:(软件安装)