Assimp模型加载库安装/链接问题

2023-12-29

我正在尝试安装 Assimp 以在我的项目中使用,但遇到了一些麻烦。我目前使用的是 win 10 pro 和 Visual Studio 15 2017。

  1. 我已经下载了Assimp 4.0.1.zip,将其解压到一个目录中,加载cmakeGui并运行配置两次,然后生成到Assimp/build目录中。

  2. 接下来,我进入 Assimp/build,运行 Assimp.sln 并选择我认为是的 ALL_BUILD。然后,我复制了 /code/debug 中 .lib 和 .dll 旁边的所有文件,并将它们全部移到我的项目的 Debug 目录中,我的 exe 就是在该目录中构建的。我将 .lib 复制到 opengl/libs 目录中,并将 /include 中的所有标头从最初提取的下载内容复制到 opengl/includes/assimp 目录中。

  3. 最后,我调整了项目链接器设置以包含 assimp.lib 和 assimp.dll(为了简化本文的别名)

当我尝试构建项目时,它说无法打开 dll,在实验时,我将 dll 与 main.cpp 和其他文件一起复制到项目目录中,然后再次运行,这次它说“无效或损坏的文件:无法读取”在 0x378"


可以肯定地说,我需要学习编译、链接和 cmake,但现在我重新开始。

当我将标题包含到我的项目中时,我认为我已经让它停止抱怨了(也许我确实......)。为此,我从新构建的 Assimp 开始,与以前一样,将所有带有 dll 的文件移到我的 libs 目录中,将下载的所有包含文件转储到我的包含文件中,还将构建中的 config.h 移动到此目录中。然后我在项目中设置了链接器设置,并且没有将任何内容移动到我的项目目录中。

之后,它不再抱怨,所以我继续学习我正在遵循的教程系列。我进行了编译,发现了一大堆错误,将它们修复为 0,然后突然出现了 8 个新错误。

严重性代码 说明 项目文件行抑制状态 错误 LNK2019 函数“public: unsigned int __thiscall aiMaterial::GetTextureCount(enum aiTextureType)const”中引用了无法解析的外部符号 _aiGetMaterialTextureCount (?GetTextureCount@aiMaterial@@QBEIW4aiTextureType@@@Z) opengl_model_loading F:\Desktop\MyDocuments\Tuts\opengl\开始使用\opengl_model_loading\opengl_model_loading\main.obj 1

这个错误给我的感觉可能是由于dll造成的。 请指教。


我最近刚刚自己完成了这个工作,并且会说在 v401 方面遇到了很多麻烦,并且出现了错误或链接问题。成功地让我的工作与以下;

注意:ASSIMP 确实有 boost 作为依赖项。

  1. 从 github 下载/克隆 master Asset-Importer-Lib:https://github.com/assimp/assimp https://github.com/assimp/assimp
  2. 打开 Cmake GUI 并打开后:

    • 源代码在哪里:“..\MyDocuments\assimp\assimp-master”
    • 构建二进制文件的位置:“..\MyDocuments\assimp\assimp-master\build”。您需要创建一个构建文件夹并将 Cmake 指向它。

    2.1.或者,如果您熟悉命令行选项:使用以下命令生成具有相关路径的项目文件

    • cmake -G”Visual Studio 14 Win64”
  3. 单击配置。
  4. 然后生成。确保选择正确的构建选项,即 VS15 2017 64 位。
  5. 使用 Visual Studio 加载“..\MyDocuments\assimp\assimp-master\build\Assimp.sln”。
  6. 右键单击“ALL_BUILD”并选择“构建”。这将需要几分钟的时间。一旦完成并且没有错误,它应该在中创建必要的 *.dll/*.lib ..\MyDocuments\assimp\assimp-master\build\code\Debug
  7. 将相关的 *.lib 链接并包含到您现有的项目中 “..\MyDocuments\assimp\assimp-master\include\assimp”文件夹。您还需要确保 *.dll 文件与您正在运行的 *exe 位于同一文件夹中或包含在其中。
  8. 您可能还需要从 ..\MyDocuments\assimp\assimp-master\build\include\assimp\config.h 复制并将其包含在步骤 7 中。

只需确保您为代码构建正确的库,即 32/64 位/调试/发布/unicode/等,否则仍然可能遇到问题。

以下视频对于有视觉倾向的人很有用。https://youtu.be/W_Ey_YPUjMk https://youtu.be/W_Ey_YPUjMk

希望这可以帮助。

编辑: 如果您想要静态库版本,即不需要 .dll: 从上面的步骤可以看出:

5.1.将相关项目配置类型和扩展名从 .dll 更改为 .lib 类型(应该是两个:assimp 和 zlib)。

5.2.右键单击“UpdateAssimpLibsDebugSymbolsAndDLLs”->属性->构建事件并将命令行部分中的路径从 ..\Path*.dll 更新为 ..\Path*.lib。 (如果遇到错误,请在 assimp_cmd 项目上执行相同的操作)。

  1. 与上面相同,但现在还需要将您的项目链接到 IrrXML.lib 和 zlibd.lib。应该不再需要 *.dll 文件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Assimp模型加载库安装/链接问题 的相关文章

  • VB.NET 相当于 C# 属性简写吗?

    是否有与 C 等效的 VB NET public string FirstName get set 我知道你能做到 Public Property name As String Get Return name ToString End Ge
  • C++ 中本地类中的静态成员变量?

    我知道我们不能宣布static本地类中的成员变量 但其原因尚不清楚 那么请问有人可以解释一下吗 另外 为什么我们不能访问非static函数内部定义的变量 内部已经定义了局部类 直接在局部类成员函数中 在下面给出的代码中 int main i
  • 向 Nhibernate 发出 SQL 查询

    如何将此 SQL 查询发送给 Nhibernate SELECT Customer name FROM Company INNER JOIN Customer ON Company CompanyId Customer CompanyId
  • 如何将 #ifdef DEBUG 添加到 Xcode?

    我的项目中有一些代码永远不应该在发布版本中使用 但在测试时很有用 我想做这样的事情 ifdef DEBUG Run my debugging only code endif 在 Xcode 4 中哪里添加 DEBUG 设置 我尝试将其放入
  • 将内置类型转换为向量

    我的 TcpClient 类接受vector
  • 单元测试一起运行时失败,单独运行时通过

    所以我的单元测试遇到了一些问题 我不能只是将它们复制并粘贴到这里 但我会尽力而为 问题似乎是 如果我一项一项地运行测试 一切都会按预期进行 但如果我告诉它一起运行测试 则 1 5 将通过 TestMethod public void Obj
  • 读取文件特定行号的有效方法。 (奖励:Python 手册印刷错误)

    我有一个 100 GB 的文本文件 它是来自数据库的 BCP 转储 当我尝试导入它时BULK INSERT 我在第 219506324 行上收到一个神秘错误 在解决此问题之前 我想看看这一行 但可惜的是我最喜欢的方法 import line
  • 在 C# 中循环遍历文件文件夹的最简单方法是什么?

    我尝试编写一个程序 使用包含相关文件路径的配置文件来导航本地文件系统 我的问题是 在 C 中执行文件 I O 这将是从桌面应用程序到服务器并返回 和文件系统导航时使用的最佳实践是什么 我知道如何谷歌 并且找到了几种解决方案 但我想知道各种功
  • 单击 form2 上的按钮触发 form 1 中的方法

    我对 Windows 窗体很陌生 我想知道是否可以通过单击表单 2 中的按钮来触发表单 1 中的方法 我的表格 1 有一个组合框 我的 Form 2 有一个 保存 按钮 我想要实现的是 当用户单击表单 2 中的 保存 时 我需要检查表单 1
  • 未经许可更改内存值

    我有一个二维数组 当我第一次打印数组的数据时 日期打印正确 但其他时候 array last i 的数据从 i 0 到 last 1 显然是一个逻辑错误 但我不明白原因 因为我复制并粘贴了 for 语句 那么 C 更改数据吗 I use g
  • C++:.bmp 到文件中的字节数组

    是的 我已经解决了与此相关的其他问题 但我发现它们没有太大帮助 他们提供了一些帮助 但我仍然有点困惑 所以这是我需要做的 我们有一个 132x65 的屏幕 我有一个 132x65 的 bmp 我想遍历 bmp 并将其分成小的 1x8 列以获
  • 等待线程完成

    private void button1 Click object sender EventArgs e for int i 0 i lt 15 i Thread nova new Thread Method nova Start list
  • 私有模板函数

    我有一堂课 C h class C private template
  • 如何从main方法调用业务对象类?

    我已将代码分为业务对象 访问层 如下所示 void Main Business object public class ExpenseBO public void MakeExpense ExpensePayload payload var
  • 如何对 Web Api 操作进行后调用?

    我创建了一个 Web API 操作 如下所示 HttpPost public void Load string siteName string providerName UserDetails userDetails implementat
  • (de)从 CSV 序列化为对象(或者最好是类型对象的列表)

    我是一名 C 程序员 试图学习 C 似乎有一些内置的对象序列化 但我在这里有点不知所措 我被要求将测试数据从 CSV 文件加载到对象集合中 CSV 比 xml 更受青睐 因为它更简单且更易于人类阅读 我们正在创建测试数据来运行单元测试 该集
  • 用于 C# 的 TripleDES IV?

    所以当我说这样的话 TripleDES tripledes TripleDES Create Rfc2898DeriveBytes pdb new Rfc2898DeriveBytes password plain tripledes Ke
  • 如何在按钮单击时模拟按键 - Unity

    我对 Unity 中的脚本编写非常陌生 我正在尝试创建一个按钮 一旦单击它就需要模拟按下 F 键 要拾取一个项目 这是我当前的代码 在编写此代码之前我浏览了所有统一论坛 但找不到任何有效的东西 Code using System Colle
  • 如何使用 Word Automation 获取页面范围

    如何使用办公自动化找到 Microsoft Word 中第 n 页的范围 似乎没有 getPageRange n 函数 并且不清楚它们是如何划分的 这就是您从 VBA 执行此操作的方法 转换为 Matlab COM 调用应该相当简单 Pub
  • 在客户端系统中安装后桌面应用程序无法打开

    我目前正在使用 Visual Studio 2017 和 4 6 1 net 框架 我为桌面应用程序创建了安装文件 安装程序在我的系统中完美安装并运行 问题是安装程序在其他计算机上成功安装 但应用程序无法打开 edit 在客户端系统中下载了

随机推荐

  • 为什么我在角反应形式的 *ngIf 中遇到错误

    我知道这是一个非常愚蠢的问题 对于像我这样有 SOF 声誉的人来说 不应该问这个问题 然而 我正在拉扯我的头发 似乎不明白我做错了什么 我指的是一个例子创建反应形式 在 Stackblitz 中一切看起来都很好 我的代码也运行得很好 但是在
  • UDP 套接字设置超时

    我正在尝试在 UDP 套接字上设置 100 毫秒超时 我正在使用 C 我在下面发布了相关的代码片段 我不确定为什么这没有超时 而是在没有收到段时挂起 这只适用于未使用bind 方法绑定的套接字吗 define TIMEOUT MS 100
  • UITapGestureRecognizer 不执行任何操作

    我有一个应用程序 可以显示一页文本 可以点击按钮或在视图中滑动以在各个页面中前进或后退 容器视图附加了两个 UISwipeGestureRecognizer 用于向左滑动和向右滑动 这些手势没有任何问题 但现在我正在尝试将 UITapGes
  • Wildfly 中出现“意外调用状态 0”错误

    我创建了一个小例子来演示该错误 有状态 Bean 将列表作为其状态并注入无状态 Bean Stateful RequestScoped public class StatefulBean Inject StatelessBean slsb
  • 维基百科对MapReduce的reduce的解释不正确吗?

    MongoDB的解释 http www mongodb org display DOCS MapReduce MapReduce ReduceFunction减少阶段说 Map Reduce引擎可以迭代地调用Reduce函数 因此 这些函数
  • 向 docker 推送/拉取镜像时出现错误:403 Forbidden

    我在用泊坞窗服务器版本 1 10 3安装了 docker 发行版RHEL 7 2 我面临的问题是间歇性的 有时推 拉命令有效 有时会抛出以下错误 Pulling repository test a b c com hello world E
  • Rails 使用 :collection 渲染部分内容

    这很简单 不应该成为问题 但我不明白这里发生了什么 我有以下代码 class DashboardController lt ApplicationController def bookings bookings Booking all en
  • 用CSS识别浏览器和操作系统?

    我知道为特定浏览器或操作系统编写特定 CSS 代码不是正确的做法 但在我正在构建的网站中 某些元素在特定浏览器中无法很好地呈现 例如 某些元素在 IE8 中不受支持 或者在小 iPhone 显示屏中看起来很奇怪 因此我的问题是 仅使用 CS
  • 确定网络驱动器的协议

    有没有办法确定 Windows 上安装的网络驱动器所使用的协议名称 SMB CIFS NFS 和版本 在 C 中 EDIT 使用 Rusted 的答案中的信息 我从网络上的 Windows 7 计算机获得了以下信息 NETRESOURCE
  • 从 Java 调用 Oracle 函数

    我在使用 ojdbc14 jar 从 Java 1 6 调用 Oracle 函数 不是存储过程 时遇到问题 我不知道该函数包含什么 因为我从远程服务器调用它 我所知道的是 FUNCTION ap ch get acct balances V
  • iOS 6 方向方法

    iOS 6 中的方向方法发生了变化 我在纵向模式下的整个应用程序有许多视图控制器 不是选项卡栏视图控制器 我只想在旋转设备时将其中一个视图控制器旋转到横向模式 它实际上显示 webView 下面的方法适用于xcode 4 4 但是 它不在
  • 帮助以窗口形式向 DataGridView 添加复选框列

    我正在尝试在简单的窗口窗体应用程序中向 DataGridView 添加复选框列 我使用 ADO NET 从数据库中提取一些数据 放入数据表中 然后将 datagridview 数据源设置为数据表 然后我想添加一个复选框列作为第二列 到目前为
  • 为什么这个程序在布尔条件变量不存在波动的情况下不会进入无限循环?

    我想了解何时需要将变量声明为易失性 为此 我编写了一个小程序 并期望它由于缺少条件变量的波动性而进入无限循环 它没有进入无限循环 并且在没有 volatile 关键字的情况下工作正常 两个问题 我应该在下面的代码清单中更改什么 以便它绝对需
  • Android BLE,读写特性

    我目前正在开发 Android BLE 并遇到了很多 Android BLE 堆栈的问题 我的开发工具是带有 Android 4 3 的 Samsung Galaxy J 我想知道如何从 BLE 读取特征并写入特征 就像我验证收到的数据 然
  • Razor 类库 (RCL) 中包含静态内容的 404

    我在 razor 类库 net Core 3 1 中实现 ASP NET Core v3 1 应用程序使用的静态文件时遇到困难 当尝试访问静态文件时 我只收到 404 未找到 我在 Stackoverflow 上遵循了以下答案 https
  • 后台服务导致崩溃

    我的问题可能是对服务及其使用的公然误解 或者与其他应用程序的冲突 当我开始一个特定的活动时 我启动两个后台服务 位置跟踪以给出行驶距离 以及经过的计时器 这两个服务都通过BroadcastReceiver 我用一个启动每项服务Long通过I
  • 使用 ggplot2facetwrap R 的控制图

    我有以下图表 这是使用 dplyr 创建的group by and summarise函数与ggplot2 slopes gt head 12 gt inner join word month counts by word gt mutat
  • 如何让我的 Discord 机器人删除频道中的所有消息?

    当用户要求机器人这样做时 我试图让我的机器人立即删除所有消息 但我的代码不起作用 import os import discord client discord Client client commands Bot command pref
  • 枚举 Windows 中所有可用的驱动器号

    我想使用 VC 枚举 Windows 中所有可用的驱动器号 尚未占用 我怎样才能做到这一点 获取逻辑驱动器 https msdn microsoft com en us library aa364972 v vs 85 aspx以掩码中的位
  • Assimp模型加载库安装/链接问题

    我正在尝试安装 Assimp 以在我的项目中使用 但遇到了一些麻烦 我目前使用的是 win 10 pro 和 Visual Studio 15 2017 我已经下载了Assimp 4 0 1 zip 将其解压到一个目录中 加载cmakeGu