Windows » History » Revision 2
Revision 1 (Redmine Admin, 09/29/2008 05:26 PM) → Revision 2/4 (Redmine Admin, 10/20/2008 03:06 PM)
{{toc}} h1. Windows *Problèmes spécifiques à Windows* h2. Edition de liens h3{color:red}. h3. +error LNK2001: symbole externe non resolu pour des objets ou fonctions définies dans Morph-M+ *+Explication+* Lors de la compilation d'un programme qui utilise Morph-M à travers des liens dynamiques (c'est le cas par défaut pour les projets de types "addons"), le compilateur vérifie que la vesion compilée du programme aura bien accès à tous les éléments qu'il utilise et qui sont définis à l'extérieur du programme lui même. L'erreur ici stipule qu'au moins un des éléments n'est pas accessible dans les dll avec lesquelles le programme est lié. *+Solution+* Une liste simple de choses à vérifier: * les .lib avec lesquelles il faut "linker" sont bien toutes présentes dans la section idoine de la définition du projet Visual * les en-têtes correspondent bien à la version des librairies qui ont été compilées * vous avez bien défini la macro: __MORPHEE_DYNAMIC_LIBRARY dans les options du preprocesseur. h2. Compilation h3{color:red}. h3. +Visual n'arrive pas à trouver des fichiers qui pourtant existent+ *+Explication+* Pour faire court, la longeur des paths ABSOLUS est limitée à la variable MAX_PATH de l'api Windows qui est égale à 260 (caractères) ! Un explication du problème est disponible sur cette page *+Solution+* Certains ont proposé de boycotter windows :) L'idée est plaisante mais lorsque ce n'est pas possible, il faut juste éviter de mettre des noms trops longs à vos path de compilations, en essayant par exemple de faire sortir vos objets de compilations près de la racine d'un disque dur par exemple. h3{color:red}. h3. +VisualStudio 2005 me met tout d'un coup plein d'erreurs liées à des manipulations sur des itérateurs et d'autres trucs bizarres+ *+Explication+* VisualStudio2005 a une option "SAFE_STL" qui rend le compilateurs très strict sur certain problèmes notamment en excluant toute pratique qui n'apparaît pas explicitement dans le standard C++ (même si ledit standard n'interdit pas ladite pratique). D'autres compilateurs comme gcc possèdent aussi une option de ce style, mais à l'heure où ces lignes sont écrite, il semble que les développeurs du monde entier évitent d'utiliser ces options. *+Solution+* Désactiver l'option SAFE STL (ou qq soit son nom) dans VisualStudio 2005.