- Table of contents
- Windows
Windows¶
Problèmes spécifiques à Windows
Edition de liens¶
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.
Compilation¶
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.
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.
Updated by Redmine Admin about 16 years ago · 4 revisions