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. |