10
votes

Configuration de MEX Pour utiliser le compilateur Visual Studio 2010

J'ai Visual Studio 2010 installé. Cependant, Matlab ne trouve pas le compilateur.

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] 


0 commentaires

3 Réponses :


2
votes

Il y a plus de 1 façons de travailler autour de votre problème et un seul implique de l'argent :)

  1. acheter / mettre à niveau vers une nouvelle version MATLAB (R2010B reconnaît et fonctionne avec VS2010).
  2. Vous n'avez pas à installer le paquet complet VS2008, l'ancien Windows SDK V7.0 suffit. Une fois installé, Matlab doit reconnaître que lorsque vous faites un mbuild -setup .
  3. Comme vous le suggérez vous-même, installez VS2008.

    Pour une référence future: http://www.mathworks.com/support/ compilers / r2010b / index.html


0 commentaires

0
votes

Vous pouvez également créer votre code C ++ disponible pour Matlab sans utiliser MeX. MATLAB est capable de charger des DLL externes et d'appeler leurs fonctions. Vous pouvez donc envelopper votre code dans une DLL et contourner entièrement MEX.

Généralement, j'ai trouvé que cela était un moyen plus facile d'appeler C ou C ++ code de Matlab. L'inconvénient est que vous n'auriez pas toutes les installations de manipulation de structures de données MATLAB que MeX fournit. Vous pouvez toujours passer des données d'avant en arrière, certaines choses sont plus lourdes, telles que l'attribution d'un tableau en C et leur donner la propriété à Matlab.


1 commentaires

Je suggérerais la procédure dans compiler des fichiers MEX avec Visual Studio pour compiler des fichiers MEX directement dans Visual Studio. La procédure est testée pour Visual Studio 2010, MATLAB 2010A et une machine cible Intel de 64 bits. De cette page Web, vous pouvez trouver un projet Visual Studio Visual Studio que vous pouvez télécharger et utiliser comme référence pour votre propre. Pourquoi dites-vous qu'il y a des limitations? Je ne trouve pas immédiatement une raison pour laquelle vous ne pouviez pas compiler des fichiers MEX sous Visual Studio avec toutes les fonctionnalités MEX.



7
votes

Cela dépend de la version MATLAB que vous utilisez. R2010B prend en charge VS2010 hors de la boîte. Si vous avez R2010A, il y a un patch disponible:


0 commentaires