BulletSharp

物理エンジンBulletのC#用ラッパー,BulletSharpのSharpDX向けビルド方法を示します.

2014年12月時点のものです,すぐにできなくなるかもしれません.

ソース,必要なファイルの準備

BulletSharpのビルド方法に則って進めていきます.

マニュアル通り,SVNリポジトリからソースを取得します.Windowsで普段SVNを使っておらず,さくっとソースコードだけ取得したい場合は,以下で紹介されているWindows用SVNコマンドを使うと便利です.

上記のSVNコマンドが入った同じフォルダにhoge.batを作成,中に

svn checkout http://bullet.googlecode.com/svn/trunk/ bullet
svn checkout http://bulletsharp.googlecode.com/svn/trunk/ bulletsharp

と書いて実行すればソースの取得が終わります.

SharpDXもダウンロードしておきます,

から,バイナリをダウンロード,先にダウンロードしたbullet,bulletsharpフォルダがある同じフォルダに

SharpDX

フォルダを作り,その中に展開したSharpDXバイナリの中身(Bin,Buildフォルダなど)をコピーします.

Bulletのビルド

cmakeを使ってビルド用のVisualStudioソリューションを作成します.cmakeをインストール,起動して,

[Brouse Source],[Brouse Build]先ほどダウンロードしたbulletフォルダを指定します.[Configure]するとVisual Studioのバージョン指定が出てくるのでVisual Studio 2013を指定,64bit用がほしい人は64bitのものを指定します.

cmake.png

設定項目一覧が表示されるのでUSE_MSVC_RUNTIME_LIBRARY_DLLにチェックを入れるのを忘れずに.で,[Generate].

cmake2.png

作成されたBULLET_PHYSICS.slnを開き,構成を[Debug]から[MinSizeRel]にします.

kosei.png

で,ビルドするのですが,エラーがでます.

error X3000: unrecognized identifier 'MSTRINGIFY'

⇒HLSLファイルがビルド対象になってしまっているため出てきます.プロジェクトBulletSoftBodySolvers_DX11の.hlslファイルすべて,[プロパティ]⇒[項目の種類]で[ビルドに含めない]にしておきます.

error C2039: 'max' : 'std' のメンバーではありません。

⇒#include <algorithm> 追加

#include "hacdICHull.h"
#include <limits>
#include <algorithm> //追加
error C2375: 'fmax' : 再定義されています。異なるリンケージです。

⇒fmaxとfmin関数削除

参考:

これでビルドされると思います.

BulletSharpのビルド

bulletsharp\vs2013\BulletSharp.vcxprojをエディタで開き,以下のように書き換えます.

    <TargetFrameworkVersion Condition="'$(TargetFrameworkVersion)'==''">v4.5.1</TargetFrameworkVersion>

    <TargetFrameworkVersion Condition="'$(TargetFrameworkVersion)'==''">v4.5</TargetFrameworkVersion>

デフォルトでは.Net Framework 4.5.1を対象にDLLがビルドされてしまうので,直接プロジェクトファイルを書き換えて4.5を対象にビルドするようにしておきます.(Visual Studioからはできないらしい)

プロジェクトを開いたら構成を[Release SharpDX]にします.

kousei2.png

プロジェクトのプロパティを開き,[リンカー]⇒[全般]⇒[追加のライブラリディレクトリ]で"\msvc\2013"を削除します.

projprop1.png

また[C/C++]⇒[全般]⇒[追加の#usingディレクトリ]で..\..\SharpDX\Bin\DirectX11-net40の箇所を自分が使用しているDLLのフォルダにします.

例えば,SharpDX Toolkit for Visual Studioを使用している場合は,..\..\SharpDX\Bin\DirectX11-Signed-net40に変更する必要があります.

projprop2.png

(プロパティのプラットフォームがデフォルトでx64になっているので注意)

これでビルドが成功すれば,晴れてBulletSharp.dllが手に入りますので,これを使っていきましょう.


添付ファイル: fileprojprop2.png 1445件 [詳細] fileprojprop1.png 1385件 [詳細] filekousei2.png 1453件 [詳細] filekosei.png 1463件 [詳細] filecmake2.png 1508件 [詳細] filecmake.png 1573件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2014-12-03 (水) 17:16:05