mexファイルからdllを生成する方法

10 vues (au cours des 30 derniers jours)
NAOKI FUKUDA
NAOKI FUKUDA le 12 Juin 2018
Commenté : michio le 12 Juin 2018
他の古いバージョンのmatlabで作成されたmexファイルを受け取りmatlab2018でコンパイルしようとしたのですがうまくいきませんでした。 バージョンが違うとコンパイルはできないのでしょうか? 拡張子はmexw32です。よろしくお願いいたします。

Réponses (1)

michio
michio le 12 Juin 2018
Modifié(e) : michio le 12 Juin 2018
MATLAB の 32-bit/64-bit の不一致が主な原因かとみられます。
mexw32 ということは 32-bit MATLAB にてコンパイルされたものと見受けられますが、R2018a は 64-bit 版を使用されているかと思います。32-bit MATLAB は R2015b で提供が終了しています。64-bit OS 上にも 32-bit MATLAB をインストールすることはできますので、R2015b 以前のバージョンを使うというのも方法の1つです。
  2 commentaires
NAOKI FUKUDA
NAOKI FUKUDA le 12 Juin 2018
ご回答ありがとうございます。 早速R2008aをインストールしようとしたところ、うまくインストールできませんでした。 試しにcファイルを mex 'ファイル名.c' のように実行したところ、
mex ファイル名.c 'Xcode with Clang' でビルドしています。 /'フォルダ名'/'ファイル名.c':23:10: warning: non-portable path to file '"ファイル名.h"'; specified path differs in case from file name on disk [-Wnonportable-include-path] #include "ファイル名.h" ^~~~~~~~~~~~~ "ファイル名.h" /'フォルダ名'/'ファイル名.c':66:33: warning: illegal character encoding in string literal [-Winvalid-source-encoding] printf("error : Fopen() 8E<B8><94>s<82>ナ<B7><81>B\n" ); ^~~~~~~~~~~~ ~~~~ ~~~~~~~~ /'フォルダ名'/'ファイル名.c':85:28: warning: illegal character encoding in string literal [-Winvalid-source-encoding] printf("error : Fclose() 8E<B8><94>s<82>ナ<B7><81>D%d\n",rtc ); ^~~~~~~~~~~~ ~~~~ ~~~~~~~~ /'フォルダ名'/'ファイル名.c':126:21: warning: illegal character encoding in string literal [-Winvalid-source-encoding] printf("error : %s<83>t<83>@<83>C<83><8B><82><AA><82><A0><82><E8><82>ワ<B9><82><F1><81>D\n",filename ); ^~~~ ~~~~ ~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~ /'フォルダ名'/'ファイル名.c':236:21: warning: illegal character encoding in string literal [-Winvalid-source-encoding] printf("error : %s<83>t<83>@<83>C<83><8B><82><AA><83>I<81>[<83>v<83><93><82>ナ<AB><82>ワ<B9><82><F1><81>D\n",filename ); ^~~~ ~~~~ ~~~~ ~~~~~~~~~~~~~~~~~~~~ ~~~~ ~~~~ ~~~~~~~~~~~~ ~~~~~~~~ ~~~~~~~~~~~~~~~~ 5 warnings generated.
と表示されました。この場合どのような操作をすればうまく実行できるのでしょうか。 ご回答よろしくお願いいたします。
michio
michio le 12 Juin 2018
ログに Xcode とありますが、、Windows OS 用の拡張子 (mexw32) でしたので、Windowsのお話と思い込んでいましたが、今回使用されているのは Mac OS でしょうか? mexw32 の拡張子のMEX関数はMac OS 上では使用できません。
またメッセージからソースコードのエンコーディングに問題がありそうですね。

Connectez-vous pour commenter.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!