현재 Windows7 64-bit 에서 MATLAB 7.10.0 (R2010a) 를 사용중인데, C++ file을 사용하고자 mex 명령어를 사용하니 아래와 같은 메시지가 뜬다.
>> mex example.cpp
Error: Could not detect a compiler on local system
which can compile the specified input file(s)
**************************************************************************
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.
**************************************************************************
C:\PROGRA~1\MATLAB\R2010A\BIN\MEX.PL: Error: No compiler options file could be found to compile source code. Please run "mex -setup" to rectify.
??? Error using ==> mex at 222
Unable to complete successfully.
사용할 수 없는 이유는 간단히, C compiler가 없기 때문이다. 일반적으로 32-bit Windows에서는 MATLAB 2010 이 설치될 때 Compiler도 함게 설치되나, 64-bit MATLAB에서는 따로 설치해주어야 한다. 설치해야할 파일은 아래 2가지이다.
Windows (64-bit)
For the 64-bit Windows platform, a C compiler is not supplied with MATLAB. Free downloads are available that are suitable for most users. To get a C compiler and support libraries, install the following downloads in order:
* Add Download 1:
Microsoft Visual C++ 2010 Express
* Add Download 2:
Microsoft Windows SDK 7.1
공식 MATLAB 안내 페이지로 바로 가기
순서대로 설치하였다면, MATLAB command 창에서 아래와 같이 입력하여 Compiler Path Setup을 해야한다.
이 때, Would you like mex to locate installed compilers [y]/n? 에서 n을 누르면 자동으로 Path가 잡히지 않은 Compiler를 수동으로 설정할 수 있다.
>> 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: