Assimp编译与配置(VisualStudio 2019)

Assimp编译与配置

  • 环境
  • 源码下载
  • 编译
  • 配置环境
    • 配置 Include 文件
    • 配置 .lib 文件
    • 配置 .dll 文件
  • 测试

参考文章Assimp 编译(Visual Studio 2019)
使用vs2022编译assimp,并基于OpenGL加载模型

环境

win11
Assimp 5.2.5
VisualStudio2019
cmake 3.26

源码下载

Assimp releases
5.3版本我尝试用visualstudio2019编译失败,不知道什么原因,5.2是可以的

编译

  1. 下载源码之后解压文件
    进入解压后的assimp-5.2.5路径,新建build文件夹作为输出目录
    打开cmake的gui选择源码路径和输出目录
    在这里插入图片描述
  2. 点击configure,弹窗中选择生成项目使用的VS版本,我这里用的是VS2019,点击Finish
    在这里插入图片描述
  3. 可能会报错的提示找不到DirectX SDK在这里插入图片描述
    需要安装DirectX:官网下载
    安装之前需要先卸载Microsoft Visual C++ 2010 x64 Redistributable和Microsoft Visual C++ 2010 x86 Redistributable这两个东西
    在这里插入图片描述
    安装好DirectX之后,再讲之前卸载的内容下载回来即可
    下载地址
    选择这两个内容下载
    在这里插入图片描述
  4. 安装好DirectX之后再回到cmake点击configure
    出现以下警告忽略即可,不影响
    在这里插入图片描述
    configure结束
    在这里插入图片描述
  5. 点击genarate
    在这里插入图片描述
  6. 点击open project,在VS中打开项目
  7. 选中ALL_BUILD
    在这里插入图片描述
  8. 在release模式下生成解决方案即可
    在这里插入图片描述
    在这里插入图片描述
    运行结果
    在这里插入图片描述

配置环境

配置 Include 文件

将build文件夹下的include复制到assimp源码中的include中,也就是将两个include合并到一起。然后在VisualStudio的项目中配置项目属性,在项目的包含目录中添加这个include路径即可。
在这里插入图片描述

配置 .lib 文件

编译好后\build\lib\Release路径下会生成assimp-vc142-mt.lib

在这里插入图片描述
将这个绝对路径添加到项目属性中的库目录中
在这里插入图片描述
然后在链接器-输入中添加lib文件名称
在这里插入图片描述

配置 .dll 文件

拷贝 build\bin\Release目录下的assimp-vc142-mt.dll 到项目的可执行文件目录下。
在这里插入图片描述
只是这样的话每新建一个项目都要拷贝一次dll文件
有个一劳永逸的方法是将dll文件拷贝到C:\Windows\System32路径下,但是我不太推荐这种方法

以上include路径lib文件dll文件配置方法是通用的,几乎每一个库都可以这样配置

测试

运行测试代码

#include <assimp/Importer.hpp>      // C++ importer interface
#include <assimp/scene.h>           // Output data structure
#include <assimp/postprocess.h>     // Post processing flags
#include <assimp/config.h>
#include <iostream>

#pragma comment (lib, "assimp-vc142-mt.lib")

void LoadFinish(const aiScene* scene)
{
	std::cout << "LoadFinish ! NumVertices : " << (*(scene->mMeshes))->mNumVertices << std::endl;
}

bool LoadModel(const std::string& pFile)
{
	// Create an instance of the Importer class
	Assimp::Importer importer;

	// And have it read the given file with some example postprocessing
	// Usually - if speed is not the most important aspect for you - you'll
	// probably to request more postprocessing than we do in this example.
	const aiScene* scene = importer.ReadFile(pFile,
		aiProcess_CalcTangentSpace |
		aiProcess_Triangulate |
		aiProcess_JoinIdenticalVertices |
		aiProcess_SortByPType);

	// If the import failed, report it
	if (!scene)
	{
		std::cout << importer.GetErrorString() << std::endl;
		return false;
	}

	// Now we can access the file's contents.
	LoadFinish(scene);

	// We're done. Everything will be cleaned up by the importer destructor
	return true;
}

int main()
{
	LoadModel("ccap_n.ply");

	return 0;
}

运行结果
在这里插入图片描述
配置完成!

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值