ライブラリを含む MEX ファイルを作成しよう​とするとリンクエラー​となるのはなぜですか​?

6 ビュー (過去 30 日間)
MathWorks Support Team
MathWorks Support Team 2013 年 10 月 25 日
回答済み: MathWorks Support Team 2013 年 10 月 25 日
C で作成したライブラリ (myLib.lib) をリンクさせて MEX ファイルを作成しようとするとリンクエラーとなります。MATLAB は 64-bit 版を使用しています。
MEX 作成時のコマンド:
>> mex myFunc.c -L<カレントパス> -lmyLib
エラーメッセージ:
ライブラリ C:\Users\myDir\AppData\Local\Temp\mex_xIsFIl\templib.x とオブジェクト
C:\Users\myDir\AppData\Local\Temp\mex_xIsFIl\templib.exp を作成中
myFunc.obj : error LNK2019: 未解決の外部シンボル timestwo が関数 mexFunction で参照されました。
myFunc.mexw64 : fatal error LNK1120: 外部参照 1 が未解決です。
C:\PROGRA~1\MATLAB\R2012A\BIN\MEX.PL: Error: Link of ' myFunc.mexw64' failed.
(myLib 内の timestwo 関数を使用しようとしています)

採用された回答

MathWorks Support Team
MathWorks Support Team 2013 年 10 月 25 日
ライブラリが作成されたプラットフォームと、MATLAB が動作するプラットフォームが異なる場合に、このようなエラーが発生します。
myLib.lib が 32-bit 版の VC++ で作成された場合はこのようなエラーメッセージが出力されます。
以下のいずれかの方法で、エラーを回避します。
・32-bit 版の VC++ で myLib を作成し、32-bit 版 MATLAB で使用する。
・64-bit 版の VC++ で myLib を作成し、64-bit 版 MATLAB で使用する。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeC MEX ファイル アプリケーション についてさらに検索

タグ

製品

Community Treasure Hunt

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

Start Hunting!