Windows » History » Version 3
Redmine Admin, 10/20/2008 03:12 PM
| 1 | 1 | Redmine Admin | {{toc}} |
|---|---|---|---|
| 2 | |||
| 3 | h1. Windows |
||
| 4 | |||
| 5 | *Problèmes spécifiques à Windows* |
||
| 6 | |||
| 7 | 3 | Redmine Admin | h2()={color:blue}. Edition de liens |
| 8 | 1 | Redmine Admin | |
| 9 | 2 | Redmine Admin | h3{color:red}. +error LNK2001: symbole externe non resolu pour des objets ou fonctions définies dans Morph-M+ |
| 10 | 1 | Redmine Admin | |
| 11 | *+Explication+* |
||
| 12 | |||
| 13 | 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é. |
||
| 14 | |||
| 15 | *+Solution+* |
||
| 16 | |||
| 17 | Une liste simple de choses à vérifier: |
||
| 18 | |||
| 19 | * les .lib avec lesquelles il faut "linker" sont bien toutes présentes dans la section idoine de la définition du projet Visual |
||
| 20 | * les en-têtes correspondent bien à la version des librairies qui ont été compilées |
||
| 21 | * vous avez bien défini la macro: __MORPHEE_DYNAMIC_LIBRARY dans les options du preprocesseur. |
||
| 22 | |||
| 23 | 3 | Redmine Admin | h2()={color:blue}. Compilation |
| 24 | 1 | Redmine Admin | |
| 25 | 2 | Redmine Admin | h3{color:red}. +Visual n'arrive pas à trouver des fichiers qui pourtant existent+ |
| 26 | 1 | Redmine Admin | |
| 27 | *+Explication+* |
||
| 28 | |||
| 29 | 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 |
||
| 30 | |||
| 31 | *+Solution+* |
||
| 32 | |||
| 33 | 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. |
||
| 34 | |||
| 35 | 2 | Redmine Admin | h3{color:red}. +VisualStudio 2005 me met tout d'un coup plein d'erreurs liées à des manipulations sur des itérateurs et d'autres trucs bizarres+ |
| 36 | 1 | Redmine Admin | |
| 37 | *+Explication+* |
||
| 38 | |||
| 39 | 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. |
||
| 40 | |||
| 41 | *+Solution+* |
||
| 42 | |||
| 43 | Désactiver l'option SAFE STL (ou qq soit son nom) dans VisualStudio 2005. |