Je travaille sous le logiciel Matlab R2010b 64bits sous Windows 7, j'ai récupéré des codes utilisant des codes Hypergeo_2F1.c issue de la librairie gsl. Je dispose évidemment du fichier Hypergeo_2F1.mexw32 incompatible avec ma version de Matlab 64bits.
Je me suis alors intéressé à la compilation d'un équivalent sous Matalb 64bits. Matlab propose pour cela la fonction mex pour compiler et créer des fichiers *.mexw64. Je dois passer par une configuration de l'outil par "mex -setup" qui ne vois aucun compilateur.
Le compilateur reconnu par Matlab que je choisi est Visual C++ 2010 express, le site officiel http://www.mathworks.fr/support/comp...10b/win64.html fourni le lien pour récupérer ce logiciel ainsi que pour récupérer le SDK 7.1. Le Windows SDK 7.1 est nécessaire pour compiler des outils 64bits, je dois donc le récuperer. J'installe vc2010 et je le met à jour par Windows Update. J'installe winsdk et je le met à jour par Windows Update.
Pour compiler mon Hypergeom_2F1.c je dois obtenir des librairies de gsl sur le site http://gnuwin32.sourceforge.net/packages/gsl.htm. Le paquet complet sans les source ne dispose que de libraires sous forme de *.a non reconnues par mex, je vais alors devoir recompiler les sources. Je récupère alors les sources. Avec vc2010 j'ouvre gsl-1.8-src\src\gsl\1.8\gsl-1.8\VC8\libg… vc2010 me propose d'importer les paramètres issue d'une version antérieure. Puis je construit toute ma solution pour obtenir des *.obj de mes librairies.
Lors de la compilation de mex, il me fait une erreur LNK1132 indiquant qu'il y a un problème entre les fichiers x86 et l’exécutable final qui est x64. Après plusieurs recherches, sous vc2010, je dois modifier différentes options :
Sur libgsl je clic droit Propriétés. Pour chaque configuration (Debug-DLL et Release-DLL)
- Propriétés de configuration > Général > Ensemble d'outils de Plateforme je dois sélectionner Windows7.1 SDK;
- Propriétés de configuration > Editeur de Liens > Avancé > Ordinateur Cible je dois choisir MachineX64 (/MACHINE:X64)
- Cliquer sur Gestionnaire de configurations... dans Plateforme de la solution active : je choisis <Nouveau...> Je change Itanium par x64 puis OK
Lors de la dernière modification je ne comprend plus l'interface des Pages de propriétés de libgsl. Je fourni quelques images Google montrant les différences d'interface.
Cordialement
Détails supplémentaires
La mise à jour de Visual C++ 2010 Express par Windows Update contient Visual C++ 2010 Express SP1. Ce logiciel supprime des fichiers nécessaires à Windows 7.1 SDK pour pouvoir s'installer. Dans mon processus d'installation, je n'ai jamais eu une installation complète de Windows 7.1 SDK. J'ai désinstallé Windows 7.1 SDK et vc2010 SP1, je réinstalle vc2010, j'installe Windows 7.1 SDK, j'installe vc2010 SP1. Mais cela ne change rien à l'erreur que j'ai.
Partager