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,下载地址在这里

  • 相关阅读:
    什么样的代码称得上是好代码?
    九年程序人生 总结分享
    Docker入门 第一课 --.Net Core 使用Docker全程记录
    阿里云 Windows Server 2012 r2 部署asp.net mvc网站 平坑之旅
    Visual studio 2015 Community 安装过程中遇到问题的终极解决
    Activiti6.0 spring5 工作流引擎 java SSM流程审批 项目框架
    java 进销存 库存管理 销售报表 商户管理 springmvc SSM crm 项目
    Leetcode名企之路
    24. 两两交换链表中的节点
    21. 合并两个有序链表
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/3891626.html
Copyright © 2011-2022 走看看