matlab vs2010编译器xml,如何在MATLAB R2010a 中使用Visual C++ 2010编译器
1、安裝補(bǔ)丁VS2010MEXSupport.zip
參考http://www.mathworks.cn/support/solutions/en/data/1-D5W493/index.html?solution=1-D5W493
由于MATLAB R2010a 發(fā)布的時(shí)間要比
VS2010早,所以在該版本識別不了VC++2010編譯器。不過R2010a之后的版本應(yīng)該不會有這種問題了。
解壓補(bǔ)丁包,將其中的文件放到 D:\Program
Files\MATLAB\R2010a\bin\win32\mexopts 文件夾下。
2、在MATLAB中安裝VC++ 2010 編譯器
打開Matlab,在 command window
中輸入 mex -setup
————————————————————————————————————————————-
>> mex -setup
Please choose your compiler for building external interface (MEX)
files:
Would you like mex to locate installed compilers [y]/n?
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] Lcc-win32 C 2.4.1
[7] Microsoft Visual C++ 6.0
[8] Microsoft Visual C++ 2005 SP1
[9] Microsoft Visual C++ 2008 Express
[10] Microsoft Visual C++ 2008 SP1
[11] Microsoft Visual C++ 2010
[12] Microsoft Visual C++ 2010 Express
[13] Open WATCOM C++
[0] None
Compiler:12
————————————————————————————————————————————————
注意,如果選擇 n 之后,沒有列出這么多編譯器選項(xiàng),甚至沒有出現(xiàn)VC++ 2010。
不要慌,此時(shí)選擇 0,即None。
—————————————————————————————————————————————————
Compiler: 0
mex: No compiler selected. No action taken.
**************************************************************************
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.
**************************************************************************
—————————————————————————————————————————————————
然后在command window 里再次輸入 mex -setup
—————————————————————————————————————————————————
>> mex -setup
Please choose your compiler for building external interface (MEX)
files:
Would you like mex to locate installed compilers [y]/n?
n ?(一定要選擇
n)
—————————————————————————————————————————————————
此時(shí)就會列出很多編譯器,包括已經(jīng)VC++2010。如果還沒有,可重復(fù)幾次以上過程。當(dāng)然前提是必須安裝VS2010,否則,再怎么重復(fù),也找不到VC++2010編譯器。
列出VC++2010編譯器之后,我相信接下該怎么做對大家來說沒啥問題。
3、error C2371: 'char16_t' : redefinition; different
basic types
在混合編程中,也許會出現(xiàn)如下錯(cuò)誤:
—————————————————————————————————————————————————
C:\Microsoft Visual Studio 10.0\VC\INCLUDE\yvals.h(576) : error
C2371: 'char16_t' : redefinition; different basic types
C:\Matlab\r2010a\extern\include\matrix.h(330) : see declaration of
'char16_t'
—————————————————————————————————————————————————
原因是VS2010中的yvals.h添加了char16_t的定義,而Matlab的matrix.h也包含對char16_t的定義,所以同時(shí)包含這兩個(gè)頭文件的話,會導(dǎo)致重復(fù)定義char16_t的錯(cuò)誤。
解決方案:
參考:http://maciejgryka.com/bits/2011/09/char16_t-conflict-while-mexing-with-vs2010/
完全沒有必要修改這兩個(gè)頭文件(以防修改之后,會在將來導(dǎo)致一些問題),只需要在包含matrix.h之前包含yvals.h即可。例如:
#include
#if (_MSC_VER >= 1600)
#define __STDC_UTF_16__
#endif
#include "mex.h"
注:mex.h 包含matrix.h。這就要求我們必須知道所包含的頭文件是否包含matrix.h。
總結(jié)
以上是生活随笔為你收集整理的matlab vs2010编译器xml,如何在MATLAB R2010a 中使用Visual C++ 2010编译器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 满额申购是什么意思 最大额度申购股票
- 下一篇: 储蓄卡和信用卡有啥区别