C++のMatlabユーザー定義関数を使用しようとしています。以下のコマンドを使用してライブラリを作成しました。
mcc -B csharedlib:libMyLib myFunction.m
mclmcr.hとlibmwmclmcrrt.soは作成されません。ランタイムライブラリの一部なのかしら?
ありがとう
C++のMatlabユーザー定義関数を使用しようとしています。以下のコマンドを使用してライブラリを作成しました。
mcc -B csharedlib:libMyLib myFunction.m
mclmcr.hとlibmwmclmcrrt.soは作成されません。ランタイムライブラリの一部なのかしら?
ありがとう
ドキュメントによると:
MATLABコンパイラおよび関連するビルダー製品によって生成されたすべてのアプリケーションおよびソフトウェアコンポーネントは、1つのMathWorksライブラリmclmcrrtxx.libに対してのみリンクする必要があります。
.libおよび対応するヘッダーファイルはにありますが$matlabroot/extern
、.dll / .so共有ライブラリは$matlabroot/runtime/$arch
(またはMCRインストール内に)あります。
MATLABには便利な関数がありますmbuild
(を使用して一度設定する必要がありますmbuild -setup
)。mbuild
コンパイラが必要なインクルードファイルとライブラリを見つけられるように、正しいスイッチを使用してC /C++コンパイラを呼び出す方法を知っています。を使用mbuild
して独自の実行可能ファイルを作成し、MATLABコンパイラで生成された共有ライブラリとリンクできます。
たとえば、MATLAB内では次のように呼び出されます。
>> mbuild testProgram.c -I./distrib -L./distrib -llibMylib
MATLABコンパイラを使用して生成したC共有ライブラリにリンクするプログラムを作成しdistrib
ます。ディレクトリには、これらの生成されたファイルが含まれます。
その他の参考資料: