matlab libsvm make.m 64位,win7 64位系统编译libsvm心得与问题

一、安装visual studio 2010

这个支持64位系统编译

二、在MATLAB 较高版本中运行mex -setup

我开始安装了visual studio 2005,在没有卸载visual studio 2005的情况下,我又安装了visual studio 2010,第一次运行mex -setup 时

Would you like mex to locate installed compilers [y]/n? y

发现在默认编译器中没有Microsoft Visual C++ 2008 SP1  所以我就按如下步骤选择了,最终成功安装。

>> mex -setup

Please choose your compiler for building external interface (MEX) files:

Would you like mex to locate installed compilers [y]/n? n

Select a compiler:

[1] Intel C++ 11.1 (with Microsoft Visual C++ 2008 SP1 linker)

[2] Intel C++ 9.1 (with Microsoft Visual C++ 2005 SP1 linker)

[3] Intel Visual Fortran 11.1 (with Microsoft Visual C++ 2008 SP1 linker)

[4] Intel Visual Fortran 11.1 (with Microsoft Visual C++ 2008 Shell linker)

[5] Intel Visual Fortran 10.1 (with Microsoft Visual C++ 2005 SP1 linker)

[6] Microsoft Visual C++ 2005 SP1

[7] Microsoft Visual C++ 2008 Express

[8] Microsoft Visual C++ 2008 SP1

[0] None

Compiler: 8

The default location for Microsoft Visual C++ 2008 SP1 compilers is C:\Program Files (x86)\Microsoft Visual Studio 9.0,

but that directory does not exist on this machine.

Use C:\Program Files (x86)\Microsoft Visual Studio 9.0 anyway [y]/n? n

Please enter the location of your compiler: [C:\Program Files (x86)\Microsoft Visual Studio 9.0] C:\Program Files (x86)\Microsoft Visual Studio 10.0

Please verify your choices:

Compiler: Microsoft Visual C++ 2008 SP1

Location: C:\Program Files (x86)\Microsoft Visual Studio 10.0

Are these correct [y]/n? y

***************************************************************************

Warning: MEX-files generated using Microsoft Visual C++ 2008 require

that Microsoft Visual Studio 2008 run-time libraries be

available on the computer they are run on.

If you plan to redistribute your MEX-files to other MATLAB

users, be sure that they have the run-time libraries.

***************************************************************************

Trying to update options file: C:\Users\11\AppData\Roaming\MathWorks\MATLAB\R2010a\mexopts.bat

From template:              D:\PROGRA~1\MATLAB\R2010a\bin\win64\mexopts\msvc90opts.bat

Done . . .

**************************************************************************

Warning: The MATLAB C and Fortran API has changed to support MATLAB

variables with more than 2^32-1 elements.  In the near future

you will be required to update your code to utilize the new

API. You can find more information about this at:

http://www.mathworks.com/support/solutions/en/data/1-5C27B9/?solution=1-5C27B9

Building with the -largeArrayDims option enables the new API.

**************************************************************************

三、make编译过程

libsvm 工具箱给的make.m文件的是

mex -O -c svm.cpp

mex -O -c svm_model_matlab.c

mex -O svmtrain.c svm.obj svm_model_matlab.obj

mex -O svmpredict.c svm.obj svm_model_matlab.obj

mex -O libsvmread.c

mex -O libsvmwrite.c

如果在64位系统中运行需要将-o 换为-largeArrayDims,即如下:

mex -largeArrayDims -c svm.cpp

mex -largeArrayDims -c svm_model_matlab.c

mex -largeArrayDims svmtrain.c svm.obj svm_model_matlab.obj

mex -largeArrayDims svmpredict.c svm.obj svm_model_matlab.obj

mex -largeArrayDims libsvmread.c

mex -largeArrayDims libsvmwrite.c

但是当我运行

>> make

找不到 D:\Program Files\MATLAB\R2010a\mywork\libsvm加强版\svmtrain.mexw64.manifest

找不到 D:\Program Files\MATLAB\R2010a\mywork\libsvm加强版\svmpredict.mexw64.manifest

找不到 D:\Program Files\MATLAB\R2010a\mywork\libsvm加强版\libsvmread.mexw64.manifest

找不到 D:\Program Files\MATLAB\R2010a\mywork\libsvm加强版\libsvmwrite.mexw64.manifest

出现上述问题

幸运的是工具箱能正常运行

[本帖最后由 faruto 于 2010-7-31 10:33 编辑]

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值