MATLAB compilerで生成したスタンドアロンアプリケーションをlinux環境上で実行できません
조회 수: 9 (최근 30일)
이전 댓글 표시
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
채택된 답변
Kojiro Saito
2018년 11월 2일
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)
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 スタンドアロン アプリケーション에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!