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

  • 我已经下载了Assimp 4.0.1.zip,将其提取到目录中,加载了cmakeGui并运行了两次配置,然后生成到Assimp/build目录中。
  • 接下来,我进入Assimp/build,运行Assimp.sln并选择了我认为是的ALL_BUILD。然后,我将.lib和.dll旁边的所有文件复制到/code/debug中,并将它们全部移到我的exe所构建的项目的Debug目录中。我将.lib复制到了我的opengl/libs目录中,并将/include中的所有 header 从最初提取的下载文件中复制到了我的opengl/includes/assimp目录中。
  • 最后,我调整了项目的链接器设置,使其包含assimp.lib和assimp.dll(为简化本文,其别名为
  • )

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

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

    当我将标题包含到项目中时,我不再提示它,我以为我已经开始工作了(也许我做了...)。为此,我从与以前相同的全新构建的Assimp开始,将带有dll的所有文件移动到我的libs目录中,将所有包含的内容从下载中转储到我的包含中,还将config.h从内部版本移至该目录中。然后,我在项目中设置了链接器设置,并且没有将任何内容移入我的项目目录。

    在那之后,它不再提示了,所以我继续我所关注的教程系列。我编译了很多错误,将错误固定为0,然后突然我得到了8个新错误。

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

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

    最佳答案

    我最近刚刚完成了此操作,并会说v401遇到了很多麻烦,出现了错误或链接问题。成功让我的与以下人员一起工作;

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

  • 从github下载/克隆主Asset-Importer-Lib:
    https://github.com/assimp/assimp
  • 打开Cmake GUI并打开:
  • 源代码在哪里:“..\MyDocuments\assimp\assimp-master”
  • 生成二进制文件的位置:“..\MyDocuments\assimp\assimp-master\build”。您将需要创建一个构建文件夹并将Cmake指向它。

  • 2.1。或者,如果您熟悉命令行选项:使用以下命令生成具有相关路径的项目文件
  • cmake -G“Visual Studio 14 Win64”
  • 单击配置。
  • 然后生成。确保选择正确的构建选项,即VS15 2017 64位。
  • 在Visual Studio中加载“..\MyDocuments\assimp\assimp-master\build\Assimp.sln”。
  • 右键单击“ALL_BUILD”并选择“构建”。这将需要几分钟。一旦完成并且没有错误,它应该在其中创建必要的* .dll/*。lib
    ..\MyDocuments\assimp\assimp-master\build\code\Debug
  • 链接并在您现有的项目中包含相关的* .lib以及
    “..\MyDocuments\assimp\assimp-master\include\assimp”文件夹。您还需要确保* .dll文件与您正在运行的* exe位于同一文件夹中,或包含在其中。
  • 您可能还需要从..\MyDocuments\assimp\assimp-master\build\include\assimp\config.h“复制并包含在step7中。

  • 只要确保您正在为代码构建正确的库即可,例如32/64bit/debug/release/unicode/etc,否则可能仍然遇到问题。

    跟随视频对于视觉倾斜者很有用。
    https://youtu.be/W_Ey_YPUjMk

    希望这可以帮助。

    编辑:
    如果您需要静态库版本,即不需要.dll:
    通过以上步骤:

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

    5.2。右键单击“UpdateAssimpLibsDebugSymbolsAndDLLs”->“属性”->“构建事件”,然后将命令行部分中的路径从..\Path * .dll更新到..\Path * .lib。 (如果遇到错误,请对assimp_cmd项目执行相同的操作)。
  • 与上面相同,但是现在还需要将您的项目链接到IrrXML.lib和zlibd.lib。应该不再需要* .dll文件。
  • 10-08 11:05