在Windows下使用MinGW靜態編譯Assimp

來源:互聯網
上載者:User

標籤:cmake   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,在這裡。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.