天天看點

Windows 上 Assimp(Open Asset Import Library) 源碼的編譯 及 Samples 的編譯運作

Assimp  為加載多種已知 3D 模型格式提供了一套統一的方式,而且它還是開源跨平台的(Android/iOS 也都有支援)。

可能會遇到的錯誤及解決方法:

1. error LNK2019: 無法解析的外部符号 _compress,該符号在函數 _wmain 中被引用

這個錯誤是因為Cmake沒有選擇正确的 ZLIB 庫,可以選擇自己本地已有的ZLIB庫,也可以通過勾選 CMAKE 自己編譯ZLIB庫(\contrib\zlib)。(如果要編譯 Samples 的話,還需要指定本地的 GLUT 庫 和 OPENGL 庫)

如下圖所示:

Windows 上 Assimp(Open Asset Import Library) 源碼的編譯 及 Samples 的編譯運作

2. error LNK2026 子產品對于 SAFESEH 映像是不安全的

這個問題可以通過以下方式解決:

Windows 上 Assimp(Open Asset Import Library) 源碼的編譯 及 Samples 的編譯運作

3. 無法打開檔案"LIBC.lib"問題解決

解決方法如下圖所示:

Windows 上 Assimp(Open Asset Import Library) 源碼的編譯 及 Samples 的編譯運作

4.Samples發生RunTime錯誤

DLL 缺失:

1.編譯assimp項目生成 assimp-vc110-mt.dll,存放于 build\code\Debug目錄下;

2.除了需要它還需要一個名為 devIL.dll 的動态庫。

模型缺失:

Assimp 的測試模型存放在 assimp-3.3.1\test\model 和 assimp-3.3.1\test\models-nonbsd 目錄下,在項目的“調試”->“指令參數”填入想要加載的模型,如下所示:

Windows 上 Assimp(Open Asset Import Library) 源碼的編譯 及 Samples 的編譯運作

排除以上錯誤以後,我們就可以使得 Samples 運作起來了:

第一個是不帶紋理的模型加載:

Windows 上 Assimp(Open Asset Import Library) 源碼的編譯 及 Samples 的編譯運作

第二個是帶紋理的模型加載:

Windows 上 Assimp(Open Asset Import Library) 源碼的編譯 及 Samples 的編譯運作

繼續閱讀