在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。下载地址这里。
在Windows通过使用MinGW静态编译Assimp的更多相关文章
- 在Windows下使用MinGW静态编译Assimp
使用MinGW静态编译Assimp 到了5月份了,没有写一篇日志,于是自己从知识库里面拿出一篇文章充数吧.这次将要解说怎样在Windows下使用MinGW静态编译Assimp. Assimp是眼下比較 ...
- Qt for Windows:Qt 5.4.0 MinGW 静态编译版本制作 (转)
大致流程: 1.安装Qt(源码版)以及其他必要的环境 2.编译/安装 3.配置 4.使用 ----------正文分割线---------- 1.安装Qt(源码版) 1.1 下载Qt(两个地址二选一即 ...
- windows 7下mingw+msys编译ffmpeg
windows 7下mingw+msys编译ffmpeg 1-->下载安装MingW,mingw-get-inst-20120426.exe http://sourceforge.ne ...
- 用mingw静态编译Qt4.8.2和Qt5.1.1(需要修改不少源码)
因为一些乱七八糟的原因,我需要用mingw静态编译Qt4.8.2和Qt5.1.1.经历了一天的折腾之后,自觉编译一下Qt还是件颇为麻烦的事情,故将过程略作总结,以备不时之需. 首先,在编译之前,我需要 ...
- Qt5.8 在windows下mingw静态编译
官方对编译一些条件介绍:https://doc.qt.io/qt-5/windows-requirements.html 在默认情况下,用QtCreator编译程序时,使用的是动态编译.编译好的程序在 ...
- 开源项目:windows下使用MinGW+msys编译ffmpeg
本文参考了网络上的不少文章,但由于版本环境的问题参考文章并不能直接指导编译,本文吸收多方经验,并在自己多次编译实验的基础上写成,欢迎转载,请注名出处. FFmpeg是在Linux平台下开发的,但 ...
- windows 下使用 MinGW + msys 编译 ffmpeg
本文参考了网络上的不少文章,但由于版本环境的问题参考文章并不能直接指导编译,本文吸收多方经验,并在自己多次编译实验的基础上写成,欢迎转载,请注名出处. FFmpeg是在Linux平台下开发的,但 ...
- Windows下使用mingw+cmake编译C/C++程序
按照正常流程安装好mingw和cmake后,仍然是无法直接使用cmake编译处MakeFile文件的,我们需要在CMakeLists.txt中做一些配置. 首先,在PROJECT之前,设置: SET( ...
- Windows下安装MinGW,编译c/c++时出现cannot find -lpthread解决办法
由于Mingw下没有带pthread库,所以在eclipse中设置多线程动态链接库,也不管用.需要自己下载, ftp://sourceware.org/pub/pthreads-win32/pthre ...
随机推荐
- Cocos2d-x3.0模版容器具体解释之二:cocos2d::Map<K,V>
1.概述: 版本号: v3.0 beta 语言: C++ 定义在 "COCOS2DX_ROOT/cocos/base" 路径下的 "CCMap.h" 的头文件里 ...
- KMP算法 KMP模式匹配 一(串)
A - KMP模式匹配 一(串) Crawling in process... Crawling failed Time Limit:1000MS Memory Limit:131072KB ...
- 真机測试时的错误:No matching provisioning profiles found
1.出现错误的原因是这种---- 公司接收一个外包项目,原来做真机測试的时候,用的是公司申请的苹果开发人员账号.如今项目结束了,准备上线,但客户要求使用客户自己的苹果开发人员是账号上线,于是就用客户的 ...
- 在C++工程中main函数之前跑代码的廉价方法(使用全局变量和全局函数)
// test.cpp : Defines the entry point for the console application. // #include "stdafx.h" ...
- 认识axure部件库中各个部件的属性
在axure中每一个部件都有自己的属性,下面这个表格,我们就首先来了解认识一下!以下内容来自网站蓝图,版权归原作者所有! 属性名称 属性说明 属性举例 标签 用来标示部件的名称,在axure中,部件名 ...
- css3 动画运动路径
1.cubic-bezier贝塞尔曲线CSS3动画工具 http://www.xuanfengge.com/cubic-bezier-bezier-css3-animation-tools.html ...
- C++中 auto自己主动变量,命名空间,using作用以及作用域
1.autokeyword的用途 A:自己主动变量.能够自己主动获取类型,输出,类似泛型 B:自己主动变量,能够实现自己主动循环一维数组 C:自己主动循环的时候,相应的必须是常量 2.auto自 ...
- poj 1018 Communication System 枚举 VS 贪心
Communication System Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 21631 Accepted: ...
- DELPHI 通過窗口句柄或窗口标题得到进程句柄
DELPHI 通過窗口句柄或窗口标题得到进程句柄2009年05月08日 星期五 10:15procedure TForm1.Button1Click(Sender: TObject);varhWind ...
- .net三步配置错误页面,让你的站点远离不和谐的页面
假设你的站点出现一堆让人看不懂的报错,那么你就不是一个合格的程序猿.也不是一个合格的站长. 以下的方面能够帮助你的站点远离让人头大的页面. 第一步:配置web.config 打开web.config, ...