外部インタフェース/API | ![]() ![]() |
UNIXでのコンパイルとリンク
ランタイムのUNIXでは、API共有ライブラリの場所をシステムに通知する必要があります。この節では、ユーザのシェルおよびシステムアーキテクチャに応じて必要なUNIXコマンドについて説明します。
ランタイムライブラリパスの設定
setenv LD_LIBRARY_PATH <matlab>/extern/lib/$Arch:$LD_LIBRARY_PATH
Bourneシェルでは、ライブラリパスを設定するコマンドは、
LD_LIBRARY_PATH=<matlab>/extern/lib/$Arch:$LD_LIBRARY_PATH export LD_LIBRARY_PATH
<matlab>
は、MATLABルートディレクトリで、$Arch
はシステムアーキテクチャ(alpha
, glnx86
, sgi
, sol2
, hp700
, ibm_rs
)です。
環境変数(この例題ではLD_LIBRARY_PATH)は、プラットフォームにより異なります。つぎの表は、システムで利用する環境変数名の一覧です。
アーキテクチャ |
環境変数 |
HP700 |
SHLIB_PATH |
IBM RS/6000 |
LIBPATH |
SGI 64 |
LD_LIBRARY64_PATH |
Cシェルに対しては~/.cshrc
、Bourneシェルに対しては~/.profile
のように、スタートアップスクリプトにコマンドを設定すると便利です。
コンパイルとリンク
MATLABは、エンジンアプリケーションを簡単にコンパイルおよびリンクするために、mex
スクリプトを使うためのオプションファイルengopts.sh
を提供しています。たとえば、例題のengdemo.c
をコンパイル、リンクするには、つぎを使います。
mex -f <matlab>/bin/engopts.sh <pathname>/engdemo.c
ここで、<pathname>
は指定したファイルの完全なパスを指定します。
ユーザ固有のコンパイラまたはプラットフォームに対してオプションファイルを修正する必要がある場合は、-v
スイッチを使ってカレントのコンパイラとリンカの設定を表示し、その後engopts.sh
ファイルのローカルコピーに適切な変更を行ってください。
HP-UX 11.xでのFortran(f77)に対して考慮すべき事柄
HP-UX 11.xに付属しているバージョンのFortranコンパイラ(f77
)において、-L
フラグの意味が変更されています。-L
フラグは、リスト出力を要求します。そのため、ユーザコードでリンクしたいライブラリをリンカに表示させるには、つぎのようにします。
f77 <include dir> -o <result> <source> -Wl,-L<matlab>/extern/lib/hp700 <libraries>
![]() | エンジンプログラムのコンパイルとリンク | Windowsでのコンパイルとリンク | ![]() |