.mex 文件 matlab。 Libsvm 错误

Posted

技术标签:

【中文标题】.mex 文件 matlab。 Libsvm 错误【英文标题】:mex file matlab. Libsvm error 【发布时间】:2016-04-04 15:04:19 【问题描述】:

我尝试将 .c 文件编译为 .mex ,一切顺利并创建了 mex 文件,但它仍然给我以下错误。任何人都可以解释什么是 .exp 文件以及为什么它给我错误?

找不到 E:\research data\libsvm-3.21\libsvm-3.21\matlab\svmtrain.exp

找不到 E:\research data\libsvm-3.21\libsvm-3.21\matlab\svmtrain.exp MEX 成功完成。 使用“Microsoft Windows SDK 7.1 (C++)”构建。

找不到 E:\research data\libsvm-3.21\libsvm-3.21\matlab\svmpredict.exp

找不到 E:\research data\libsvm-3.21\libsvm-3.21\matlab\svmpredict.exp MEX 成功完成。

【问题讨论】:

【参考方案1】:

这个问题可能是C++编译器版本不同造成的。

我通过选择 C++ 2010 编译器解决了这个问题。

要设置编译器,请先输入"mex -setup",然后输入"mex -setup:I:\matlab2014b_win7\installation(root of your matlab installation)\bin\win64\mexopts\msvc2010.xml"

MEX 配置为使用“Microsoft Visual C++ 2012 (C)”进行 C 语言编译。 警告:MATLAB C 和 Fortran API 已更改为支持 MATLAB 具有超过 2^32-1 个元素的变量。在不远的将来 您将需要更新您的代码以使用 新的 API。您可以在以下位置找到更多信息: http://www.mathworks.com/help/matlab/matlab_external/upgrading-mex-files-to-use-64-bit-api.html.

要选择不同的 C 编译器,请从以下选项中选择一个:

Microsoft Visual C++ 2010 (C) mex -setup:I:\matlab2014b_win7\installation\bin\win64\mexopts\msvc2010.xml C Microsoft Visual C++ 2012 (C) mex -setup:C:\Users\Administrator\AppData\Roaming\MathWorks\MATLAB\R2014b\mex_C_win64.xml C Microsoft Visual C++ 2013 专业版 (C) mex -setup:I:\matlab2014b_win7\installation\bin\win64\mexopts\msvc2013.xml C

【讨论】:

以上是关于.mex 文件 matlab。 Libsvm 错误的主要内容,如果未能解决你的问题,请参考以下文章

如何在 MATLAB 中运行 libsvm?

安装Libsvm工具箱出现问题E:\MATLAB7\BIN\WIN32\MEX.PL: Error: 'CFLAGS=\$CFLAGS -std=c99

关于libsvm工具箱在64位matlab下的安装说明

Mex 文件执行中的错误,Matlab 窗口

MATLAB 错误使用 mex

MATLAB 无效的 MEX 文件错误:缺少符号 invalid_argument