Encontrei este problema ao tentar configurar o Matlab R2013b para usar o Microsoft Visual Studio Ultimate 2013 como compilador de C/C++. O Visual Studio 2013 não está na lista de compiladores suportados pelo Matlab R2013b no Windows de 64 bits.
Ao tentar utilizar o comando ‘mex -setup’ e tentar localizar um compilador automaticamente aparecia o seguinte erro:
>> mex -setup
Welcome to mex -setup. This utility will help you set up
a default compiler. For a list of supported compilers, see
http://www.mathworks.com/support/compilers/R2013b/win64.html
Please choose your compiler for building MEX-files:
Would you like mex to locate installed compilers [y]/n? y
No supported SDK or compiler was found on this computer.
For a list of supported compilers, see
http://www.mathworks.com/support/compilers/R2013b/win64.html
Unable to complete successfully.
Tentei instalar o Microsoft Windows SDK 7.1 (Microsoft Windows SDK for Windows 7 and .NET Framework 4), mas também não deu certo. O compilador continuava não sendo encontrado, mesmo tentando selecionar manualmente o caminho.
A solução que encontrei foi um arquivo no File Exchange do Matlab chamado Matlab mex support for Visual Studio 2013 (and mbuild). Basta baixar o arquivo VS2013.zip, e descompactar 5 arquivos que estão dentre dele (alguns com extensão .bat e outros com extensão .stp) nas pastas indicadas pelo arquivo README.TXT.
A solução foi criada pelo autor para o Matlab R2013a, mas funcionou perfeitamente também no MATLAB R2013b, bastando tomar o cuidado de substituir a string “R2013a” por “R2013b” nos caminhos indicados.
Feita a descompactação dos arquivos nas pastas indicadas, executei novamente o “mex -setup” e dessa vez deu certo, como pode ser visto abaixo:
>> mex -setup
Welcome to mex -setup. This utility will help you set up
a default compiler. For a list of supported compilers, see
http://www.mathworks.com/support/compilers/R2013b/win64.html
Please choose your compiler for building MEX-files:
Would you like mex to locate installed compilers [y]/n? y
Select a compiler:
[1] Microsoft Visual C++ 2013 in C:\Program Files (x86)\Microsoft Visual Studio 12.0
[2] Microsoft Visual C++ 2013 in C:\Program Files (x86)\Microsoft Visual Studio 12.0\
[0] None
Compiler: 2
Please verify your choices:
Compiler: Microsoft Visual C++ 2013
Location: C:\Program Files (x86)\Microsoft Visual Studio 12.0\
Are these correct [y]/n?
***************************************************************************
Warning: MEX-files generated using Microsoft Visual C++ 2013 require
that Microsoft Visual Studio 2013 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\(removido)\AppData\Roaming\MathWorks\MATLAB\R2013b\mexopts.bat
From template: C:\PROGRA~1\MATLAB\R2013b\bin\win64\mexopts\msvc120opts.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/help/matlab/matlab_external/upgrading-mex-files-to-use-64-bit-api.html
Building with the -largeArrayDims option enables the new API.
**************************************************************************
Note que, bisonhamente, aparecem duas opções, uma delas com o caminho terminando com uma barra invertida e outra sem a barra. Certifique-se de escolher a opção com a barra, que no meu caso é a segunda, do contrário aparecem erros na hora de compilar.
Escolhendo a primeira opção, erro na compilação (rimou! :)):
>> mex yprime.c
LINK : fatal error LNK1561: entry point must be defined
C:\PROGRA~1\MATLAB\R2013B\BIN\MEX.PL: Error: Link of ‘yprime.exe’ failed.
Escolhendo a segunda opção, funciona perfeitamente:
>> mex yprime.c
>> T=1; Y=1:4;
yprime(T,Y)
ans =
2.0000 8.9685 4.0000 -1.0947
Compilador funcionando. Para deixar meus códigos mais rápidos agora só me falta aprender a escrever os arquivos .mex 🙂
No último mês de fevereiro eu fiz um upgrade no meu computador, colocando os seguintes…
A Câmera WiFi BESDER 8MP PTZ conta com visão noturna, duas lentes, tela dupla, sistema…
O KONNWEI KW650 é um equipamento para teste de baterias de carros e de motocicletas,…
Este é um problema que surgiu após o meu último upgrade, então é provável que…
Este é um problema que ocorreu com minha Placa PCI Express 3.0 x4 ZyDAS com…
Há três anos, em 2021, destaquei no Skooter Blog o Mouse Logitech G502 Hero, recebido…
Ver Comentários
Olá! Existe alguma opção para o R2015a? Estou com o mesmo problema, já fiz de tudo e não deu certo.
No R2015a o suporte ao Visual Studio 2013 é nativo. Basta instalar o Visual Studio que o Matlab já detecta.