필터 지우기
필터 지우기

MATLAB compilerで生​成したスタンドアロン​アプリケーションをl​inux環境上で実行​できません

조회 수: 9 (최근 30일)
Sosuke Imamura
Sosuke Imamura 2018년 11월 2일
댓글: Sosuke Imamura 2018년 11월 3일
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)

채택된 답변

Kojiro Saito
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)
  댓글 수: 1
Sosuke Imamura
Sosuke Imamura 2018년 11월 3일
解決できました。度々わかりやすくご回答頂きありがとうございます。

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 スタンドアロン アプリケーション에 대해 자세히 알아보기

제품


릴리스

R2018a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!