MATLAB compilerで生成したスタンドアロンアプリケーションをlinux環境上で実行できません
31 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Sosuke Imamura
am 2 Nov. 2018
Kommentiert: Sosuke Imamura
am 3 Nov. 2018
linux環境でのコマンドライン上でスタンドアロンアプリケーションを実行した際に以下のようなメッセージが出て実行できません。
" error while loading shared libraries: libmwlaunchermain.so: cannot open shared object file: No such file or directory"
スタンドアロンアプリケーションはもちろんlinuxマシンにて作成しております。 複数のPCでコンパイル、ファイルの実行を試してみましたがいずれも同じようなメッセージが表示されました。テストに用いたプログラムは以下のような簡単なものです。
functioin test(a)
disp(a)
0 Kommentare
Akzeptierte Antwort
Kojiro Saito
am 2 Nov. 2018
LinuxでMATLAB Runtimeを使う場合は、 こちらのドキュメントにあるとおり、LD_LIBRARY_PATHに Runtimeのインストールサブフォルダーであるruntime/glnxa64、bin/glnxa64、sys/os/glnxa64、sys/opengl/lib/glnxa64を追加する必要があります。
例えばR2018aのMATLAB Runtime (v94)を/usr/local/MATLAB/MATLAB_Runtime/v94にインストールした場合、~/.bashrcに
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/MATLAB/MATLAB_Runtime/v94/glnxa64:/usr/local/MATLAB/MATLAB_Runtime/v94/bin/glnxa64:/usr/local/MATLAB/MATLAB_Runtime/v94/sys/os/glnxa64:/usr/local/MATLAB/MATLAB_Runtime/v94/sys/opengl/lib/glnxa64
と設定しておけば、ターミナルから
source ~/.bashrc
で.bashrcの設定を反映した後に、コンパイルしたアプリケーション(上記の場合test)を起動すれば
./test a
libmwlaunchermain.soの読み込みエラー無く実行できます。
もっと簡単なのは、run_が付くシェルスクリプトを実行する方法です。 コンパイル時にrun_test.sh というファイルが同時に作成されますので、
./run_test.sh <Runtimeのインストールパス> 引数
例:
./run_test.sh /usr/local/MATLAB/MATLAB_Runtime/v94 a
と実行すればアプリケーション実行時にLD_LIBRARY_PATHが動的に設定されてから実行されます。
コンパイル時にfor_redistribution_files_onlyディレクトリに作成されるreadme.txtに上記の内容が書かれていますので、合わせてご確認ください。
また、もし引数に数字を入れる場合がある場合は、コマンドラインの文字列から数字に変換するstr2numを入れて置いたほうが良いと思います。
function test(a)
a = str2num(a);
disp(a)
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu スタンドアロン アプリケーション finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!