タグ付けされた質問 「mex」

1
macOS Mojaveにアップグレードした後、MATLABがMEXファイルをアンロードしない
MATLABでは、clear mexすべてのMEXファイルをメモリからアンロードします(ロックされている場合を除く)。以前のバージョンのmacOSでは、clear mexコマンドを発行するだけで、MATLABを再起動せずにMEXファイルを再コンパイルして変更したバージョンを実行できました。これは、モハベではもはや不可能です。 たとえば、次の簡単なMEXファイル(get_data_pointer.c)を取り上げます。 #include "mex.h" void mexFunction( int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[] ) { plhs[0] = mxCreateNumericMatrix(1, 1, mxUINT64_CLASS, mxREAL); *(uint64_t*)mxGetData(plhs[0]) = (uint64_t)mxGetData(prhs[0]); } MEXファイルを作成してメモリに読み込むことができます mex get_data_pointer.c get_data_pointer(0) それをクリアするには、 clear mex [~,mexfiles] = inmem version -modules inmem実際、MEXファイルがメモリにロードされていないことを示す空のセル配列を返しますが、version -modules(ドキュメントに記載されていないため、この回答から)/Users/cris/matlab/get_data_pointer.mexmaci64出力には引き続き表示されます。そして、MEXファイルのソースコードを変更して再コンパイルすると、実際にはMEXファイルが再ロードされることはなく、MATLABを終了するまで古いバージョンが引き続き実行されます。 macOS Mojave上のMATLAB R2017aでこれを確認しています。これは、High Sierraで同じバージョンのMATLABで問題になることはありませんでした。 再起動せずにMATLABにMEXファイルを強制的にアンロードさせるにはどうすればよいですか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.