WindowsでBlenderをソースコードからビルドする。(公式サイト手順)

公式サイトの手順に従ってBlenderをビルドしました。(2020/03/06)

そのとき成功した記録をここに残しておきます。

注意

時間がかかります(数時間)。公式サイトの記載に沿って実行しただけです。ライブラリのダウンロード時(svnのチェックアウト時)svnのエラーが発生しました。

svn: E120106: ra_serf: The server sent a truncated HTTP response body.
svn: E730054: Error running context: 既存の接続はリモート ホストに強制的に切断されました。

この対処法の一つはすべてのライブラリがダウンロードされるまで、ライブラリのフォルダ(C:\blender-git\lib\win64_vc15)で、

svn cleanup
svn update

を繰り返すことです。もし、同じ症状に悩まされた方がいらっしゃいましたら、お試しください。

開発ツールのインストール

昔、Blenderをビルドしようとして、これらをインストールしていました。ですのでここの詳しい説明はしません。

Visual Studio 2019 Community Editionを無料でインストールします。"Desktop Development with C++"のワークロードをインストールするそうです。マイクロソフトの開発環境です。blenderはソースコードの肝となる部分がc/c++で書かれています。

Subversion for Windows (SlikSVN)をインストールします。Subversionというのは集中型のバージョン管理システムのことだそうです。

Git for Windowsをインストールします。GitはSubversionより新しい分散型のバージョン管理システムだそうです。インストーラーで"add Git to your PATH"のオプションがあるそうなのでチェックをいれます。これは環境変数に登録することで、コマンドプロンプトなどから起動するときに"git"だけで起動できるようにするためです。

CMakeをインストールします。CMakeはビルドを自動化してくれるそうです。これもインストーラーで"Add Cmake to the system PATH for all users"とあるのでチェックを入れます。これも環境変数に登録しています。

環境変数に追加されていれば、コマンドプロンプトから、

svn --version
git --version
cmake --version

と、入力すればバージョン情報が出てくるはずです。コマンドが登録されていない場合はそれぞれ、svn.exe, git.exe, cmake.exeの存在するフォルダのパスを環境変数に追加します。

コマンドプロンプトの開始

"Windowsキー+R"を押した後、"cmd.exe"と入力してコマンドプロンプトを起動します。

Windowsキーを押して、スタートメニューの一覧から「Windows システム ツール」の中に「コマンドプロンプト」があります。また、Windowsキーを押して、"コマンドプロンプト"と検索すれば結果として表示されるので、これも簡単だと思います。)

Powershellではなく、コマンドプロンプトが推奨されているので、コマンドプロンプトを使います。

Blender のソースコードのダウンロード

Gitの用語でCloneといいます。オリジナルのクローンを生成するイメージでしょうか。その前に、フォルダ(directory)を作成します。公式サイトでは、Cドライブ(C:\)の下に"blender-git"とあるので、それに従います。

mkdir C:\blender-git
cd C:\blender-git
git clone git://git.blender.org/blender.git

mkdir : make directory

cd (chdirでも可) : change directory

blender-gitフォルダ内にblenderフォルダが作成されます。

ダウンロードは数KiB/sしか出ず、40分ほどかかりました。KibiByte(キビバイト) は1024bitのことだそうです。

(Blenderのウェブサイトがダウンしたとき、公式のTwitterアカウント@blender_orgからツイートがありました。githubにも公式のミラーがあるそうです。)


Blender のライブラリのダウンロード

cd C:\blender-git\blender
make update

blender内に移動し、"make update"と入力します。

The required external libraries in "C:\blender-git\blender\..\lib\win64_vc15" are missing
Would you like to download them? (y/n)

ライブラリが見つからないのでダウンロードしますか?と聞かれるので、"y"を入力すると、ダウンロードが始まります。

ライブラリは数GBあり、ダウンロードには時間がかかるそうです。実際、私の環境では、blender-git\libフォルダのサイズは7.78GBでした。エラーが出て調べていたり、退席していた時間もありましたが、うまくいっても2,3時間はかかったのではないでしょうか。

また、このmake updateでsvn checkout が自動的に行われます。svn checkoutはgit cloneのようなものだそうです。(ちょっと違うかもしれません。)事前コンパイルされた64-bitライブラリを https://svn.blender.org/svnroot/bf-blender/trunk/lib/win64_vc15 から、ダウンロードしています。

(GNUmakefileを見ると、make updateで何が行われるか確認出来ます、どうやら"C:\blender-git\blender\build_files\utils\make_update.py"が実行されているらしく、そこでは"C:\blender-git\blender\build_files\utils\make_utils.py"がimportされていました。ライブラリのURLやsvn checkoutなどの文字列が見え、このあたりに実際の処理が書かれているようです。今回は深く踏み込みません。)

このsvn checkout中にエラーが発生しました。まず、

svn: E120106: ra_serf: The server sent a truncated HTTP response body.
Error during download, retry? y/n

このようなエラーが発生したためretryするために、"y"を入力しました。これが3回続いたので、あきらめて、"n"を押しました。すると、

Error: Download of external libraries failed.
This is needed for building, please manually run 'svn cleanup' and 'svn update' in
"C:\blender-git\blender\..\lib\win64_vc15" , until this is resolved you CANNOT make a successful blender build

外部ライブラリのダウンロードに失敗しました。ビルドが成功するまで、"C:\blender-git\blender\..\lib\win64_vc15"で"svn cleanup"と"svn update"を実行してください。とあるので、言われた通り、コマンドを実行しました。

cd C:\blender-git\blender\..\lib\win64_vc15

svn cleanup
svn update

同じエラーや別のエラーE730054が何度も出たので、これを繰り返しました。

svn: E730054: Error running context: 既存の接続はリモート ホストに強制的に切断されました。

最終的に

リビジョン 62391 に更新しました。

となったため、もう一度、

cd C:\blender-git\blender
make update

を行うと、最終的に出力が、

Already up to date.
Current branch master is up to date.

となり、updateが完了しました。

Blender のコンパイル

cd C:\blender-git\blender
make

Visual Studio でコンパイルが始まります。30分ほどかかりました。最終的に実行ファイルは以下のフォルダ(Visual Studio 2019を使用したのでvc16となっています。)に格納されます。blender.exeを実行すると、最新のblenderが起動します。

C:\blender-git\build_windows_x64_vc16_Release\bin\Release\blender.exe

画像1

以上です。お疲れさまでした。

この記事が気に入ったらサポートをしてみませんか?