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ます。ディレクトリには、これらの生成されたファイルが含まれます。
その他の参考資料: