トップ «前の日記(2010/10/15(Fri)) 最新 次の日記(2010/10/19(Tue))»
【ソース+水=麦茶色の何か】

半期 四半期 全カテゴリ

今日の一言


2010/10/16(Sat) 冷凍ポテトを買ったが油が無い [長年日記] 2:30現在 21℃

_ [Matlab][Ubuntu][Debian][FC][Linux][Windows][Mac][研究関係]MATLABのm-fileをコンパイルし、非Matlab環境でも動かせるようにする(基礎編)

参考:

http://robotics.naist.jp/~min-d/p/index.php?MATLAB#ydbfa970

http://www.mathworks.co.jp/support/solutions/ja/data/1-9M7VF7/index.html?product=CO&solution=1-9M7VF7

実行可能ファイルを生成する

hogehoge.mをコンパイルしたい場合、こんな感じでコマンドを打てばいい。

>> mcc -m hogehoge.m

これで、実行可能ファイル(./hogehoge)が生成される。

実行する

MATLAB環境,非MATLAB環境に関わらず、LD_LIBRARY_PATHの追加が必要となる。

MATLAB環境の場合

実行すると「./hogehoge: error while loading shared libraries: libmwmclmcrrt.so: cannot open shared object file: No such file or directory」てな感じでエラーが出るので、

$ find / -name libmwmclmcrrt.so

で、その共有ライブラリを探し、LD_LIBRARY_PATHの追加を行えばOK。(パスの通しかたは次の日記に記載)

何度か出てくることもあるが、それらをすべて追加すれば、無事に実行できるはず。

非MATLAB環境の場合

まず、以下のファイルを、すべて非MATLAB環境に移動させる必要がある。

mccコマンドで作成した実行ファイル「hogehoge」(拡張子無し)
実行ファイルと共に生成された「run_hogehoge.sh」
$MATLABROOT\toolbox\compiler\deploy\<Arch>\MCRInstaller.bin

ここで、「$MATLABROOT」は、MATLAB インストールディレクトリを、<Arch>はOSを示す。

その後、非MATLAB環境にて、MCRInstaller.binを実行しMCRInstallerのインストールを行う。

# ./MCRInstaller.bin

後は、MCRInstallerのインストールディレクトリを指定して「run_hogehoge.sh」を実行すれば、非MATLAB環境でも、スタンドアローンに実行できるはず。

$ ./run_hogehoge.sh MCRROOT/<MCRversion>

ここで、MCRROOTは、MCR Installerのインストールディレクトリを示し、<MCRversion> は、MCR のバージョンを示す。

自分の場合はこんな感じのコマンドで実行できた。

$ ./run_hogehoge.sh /opt/MATLAB/MATLAB_Compiler_Runtime/v710

以上!ガンバレ!

_ [Matlab][Ubuntu][Debian][FC][Linux][Windows][Mac]Linuxで、共有ライブラリにパスを通す方法(sh系)

参考:

http://pocketstudio.jp/linux/?%A5%D1%A5%B9%28PATH%29%A4%CE%B3%CE%C7%A7%A4%C8%C0%DF%C4%EA%CA%FD%CB%A1%A4%CF%A1%A9

http://www.geocities.co.jp/CollegeLife-Labo/1513/matlab.txt

こんな感じのコマンドを打てばOK。

$ export LD_LIBRARY_PATH="/usr/local/MATLAB/R2009a/bin/glnx86/"

ログインする度に自動で設定したい場合は、各ユーザのホームディレクトリ配下にある、「.bash_profile」を開き、上記の

export LD_LIBRARY_PATH="/usr/local/MATLAB/R2009a/bin/glnx86/"

と言うのを書き加えればOK!

もし同じ環境変数の設定をサーバ内の全ユーザに対して指定したい場合は、「/etc/profile」を開き、末尾に

export LD_LIBRARY_PATH="/usr/local/MATLAB/R2009a/bin/glnx86/"

を加えればOK!

*各ユーザの .bash_profile の中に、ログイン後に /etc/profile ファイルを読み込むような記述があるらしい。

*パスを「追加」する場合には、以下のようにする。

$ LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/matlab/bin/glnx86
$ export LD_LIBRARY_PATH