zoukankan      html  css  js  c++  java
  • 在Windows通过使用MinGW静态编译Assimp

    使用MinGW静态编译Assimp

    到了5月份了。没有写一篇日志,于是自己从知识库里面拿出一篇文章充数吧。这次将要解说怎样在Windows下使用MinGW静态编译Assimp。

    Assimp是眼下比較全的3D格式解析库了。熟悉3D游戏开发的同行都知道,3D的格式非常混乱,各种3D格式在不同场合都有他们特定的应用,游戏引擎仅仅可以解析少部分3D格式。很多其它有用的格式来自游戏公司自己定义的格式。而在开源领域,Assimp算是比較全的3D格式导入库了。它对3D格式理解深入。非常适合整合至3D图形引擎中。让你们的程序支持很多其它3D的格式。
    要静态编译Assimp。首先须要准备Assimp的源代码、cmake和MinGW。

    MinGW我选用的是Qt自带的库,大家能够自己选择合适的MinGW或是TDM-MinGW。这里我将Assimp的源代码和cmake分享一下,以便自己日后查阅。

             Assimp下载地址:这里(提取码:60c5)

             Cmake的下载地址:这里(提取码46ac

    下载Assimp后,解压之,放在合适的位置,我这里放在E:/Develop中。


    同一时候下载cmake后,解压之,放在合适的位置。我这里放在E:/Develop中。
    然后cmd进入命令行,我们主要在命令行进行编译。
    1、 首先环境变量设置,我这里是这么设置的:

    set path=%path%;E:/Develop/cmake-2.8.12.1-win32-x86/bin;E:/Develop/Qt5.3/Tools/mingw482_32/bin
    2、然后到assimp库的根文件夹下
    cd $${Assimp文件夹}
    3、使用cmake进行构建
    cmake -G "MinGW Makefiles" ^
    -DENABLE_BOOST_WORKAROUND=ON -DBUILD_STATIC_LIB=ON ^
    -DCMAKE_RC_COMPILER=E:/Develop/Qt5.3/Tools/mingw482_32/bin/windres.exe ^
    -DCMAKE_MAKE_PROGRAM=E:/Develop/Qt5.3/Tools/mingw482_32/bin/mingw32-make.exe ^
    -DCMAKE_LFLAGS=-static ^
    -DCMAKE_LFLAGS_DLL=-static ^
    -DDX9_INCLUDE_PATH=E:/Develop/Qt5.3/Tools/mingw482_32/i686-w64-mingw32/include ^
    -DD3D9_LIBRARY=E:/Develop/Qt5.3/Tools/mingw482_32/i686-w64-mingw32/lib/libd3d9.a ^
    -DD3DX9_LIBRARY=E:/Develop/Qt5.3/Tools/mingw482_32/i686-w64-mingw32/lib/libd3dx9.a .
    假设你的计算机安装了DirectX库。那么cmake会查找头文件以及库文件。不必设置DX9_INCLUDE_PATH、D3D9_LIBRARY和D3DX9_LIBRARY。


    4、在mingw32-make之前,改动一下源码。由于编译会出现错误:
    在$${Assimp文件夹}/include/assimp/types.h中改动:
    在52行后加入#include <string.h>,即可了。
    5、改动$${Assimp文件夹}/tools/assimp_view/CMakeFiles/assimp_viewer.dir/build.make中418行。删除$(RC_FLAGS);改动$${Assimp文件夹}/tools/assimp_cmd/CMakeFiles/assimp_cmd.dir/build.make中的58行,删除$(RC_FLAGS)
    6、mingw32-make -j 4进行构建。

    假设顺利的话,libassimp.a以及assimp_cmd.exe和assimp_viewer.exe都会顺利地构建。


    最后假设想要使用assimp_cmd.exe和assimp_viewer.exe的话,须要libgcc_s_dw2-1.dll、libstdc++-6.dll以及libwinpthread-1.dll,这些都能够在MinGW文件夹中找到,我想用assimp_viewer这句话必须有d3dx9_43.dll。当然,我在这里分享assimp_viewer。下载地址这里

  • 相关阅读:
    LVS-NAT模式的配置详解
    流处理与消息队列------《Designing Data-Intensive Applications》读书笔记16
    流式计算与计算抽象化------《Designing Data-Intensive Applications》读书笔记15
    MapReduce与批处理------《Designing Data-Intensive Applications》读书笔记14
    分布式系统的一致性算法------《Designing Data-Intensive Applications》读书笔记13
    线性一致性与全序广播------《Designing Data-Intensive Applications》读书笔记12
    分布式系统的烦恼------《Designing Data-Intensive Applications》读书笔记11
    猫眼电影和电影天堂数据csv和mysql存储
    爬虫——requests.get爬虫模块参数
    机器学习——数据预处理
  • 原文地址:https://www.cnblogs.com/blfshiye/p/5032036.html
Copyright © 2011-2022 走看看