1

C++のMatlabユーザー定義関数を使用しようとしています。以下のコマンドを使用してライブラリを作成しました。

mcc -B csharedlib:libMyLib myFunction.m

mclmcr.hとlibmwmclmcrrt.soは作成されません。ランタイムライブラリの一部なのかしら?

ありがとう

4

1 に答える 1

0

ドキュメントによると:

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

その他の参考資料:

于 2012-07-20T21:49:35.653 に答える