Windows下 編譯Blender2.6

編譯方法參考官方教程:http://wiki.blender.org/index.php/Dev:Doc/Building_Blender/Windows php

本次編譯的環境和準備的軟件以下:
Windows 7 64bit
VS2008 SP1(注意,必須是VS2008,其餘版本沒法編譯,由於官方依賴庫好比boost是vc90的)
Tortoise SVN
CMake( 請下載64bit版本的,不能用32位的)
請記住咱們全部的軟件和配置都應該是64位的
c++

1. 使用Tortoise SVN下載代碼和依賴庫。 shell

在D盤根目錄建立目錄BlenderSVN,而後下載代碼:
緩存

cd D:\BlenderSVN
svn checkout https://svn.blender.org/svnroot/bf-blender/trunk/blender blender


由於是編譯64位的Blender,因此使用以下命令下載依賴庫:
svn checkout https://svn.blender.org/svnroot/bf-blender/trunk/lib/win64 lib/win64

由於依賴庫很是大,有2.8G,因此下載起來很長時間。下載事後的目錄必須是這樣的:
    BlenderSVN
    ----blender
    ----lib
    -------win64
2. 使用CMake生成工程文件。
打開CMake,設置Source Code目錄:BlenderSVN/blender,設置binaries目錄:BlenderSVN/binary。點擊Configure,選擇咱們的目標編譯器:Visual Studio 9 2008 Win64. 若是沒有錯誤,就能夠點擊Generate生成工程文件。 app

3.打開生成的工程文件,啓動編譯,便可。最後運行INSTALL這個項目。 ide

遇到的問題:
a.第2步的時候,Configure時遇到:
 The C compiler identification is unknown 
 The CXX compiler identification is unknown.
即便咱們選擇了VS9 2008 Win64,也可能會出現沒法識別編譯器的狀況。這個的出現,通常是由於CMake會在TEMP目錄下緩存之前的配置,解決辦法是:結束MSBuild32.exe進程,而且刪除TMP和TEMP這兩個環境變量,重啓CMake,再File->Delete Cache刪除Cmake的緩存,從新configure。 svn

b.編譯時遇到Can't open include file <unordered_map>.須要配置包含目錄:
右擊extern_ceres->屬性->c/c++->附加包含目錄,添加兩條:
D:\BlenderSVN\lib\Win64\boost\include\boost
D:\BlenderSVN\lib\Win64\boost\include\
而且,將出現錯誤包含的地方的代碼由: 工具

#    include <unordered_map>
#    include <unordered_set>

改成: ui

#    include <tr1/unordered_map.hpp>
#    include <tr1/unordered_set.hpp>



c.編譯時遇到isspace not a member of std
直接在出錯的地方,刪除std::便可,即把std::isspace改成 isspace


d.編譯的時候,出現:error MSB8014: Execution path (C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\x86_amd64) could not be found.
這個事因爲64bit的VS編譯工具默認沒有安裝。解決辦法控制面板->程序和功能->VS2008->卸載/更改->添加刪除功能->VisualC++,點擊X64編譯器和工具,而後更新便可。
參考:
http://stackoverflow.com/questions/5901286/unable-to-build-c-cli-app-using-vs-2010-net-3-5-and-64-bit
spa


若是遇到其餘錯誤,則多是目錄的結構不對,或者是軟件不是64bit版本,請注意檢查。

相關文章
相關標籤/搜索