Commit 2015-01-06
Compilation Win XP x86
J'ai fait en sorte que le code recompile sous Windows XP. Ceci pour pouvoir générer une version 32 bits pour les étudiants.
Pourquoi ne pas utiliser Windows 7 x86 me direz-vous? Simplement parce que les binaires générés ne sont pas compatibles ni avec Windows XP ni avec Vista. Peu d'étudiants utilisent Windows XP mais Vista est encore présent. Une autre motivation pour garder des libs Windows XP est de pouvoir générer des exécutables pour Arcelor.
Le problème technique que j'ai rencontré est que les nouvelles commandes propres au C++11 ne sont pas compilables avec le Visual Studio 2008 et que Visual Studio 2012 n'est pas compatible avec Windows XP. La solution que j'ai trouvée est d'utiliser le compilateur Intel C++ 14 à travers le Visual Studio 2008. Ca fonctionne plus ou moins. J'ai tout de même dû modifier le code à plusieurs endroits:
- l'objet
nullptrdu C++11 n'est pas reconnu (les fichiers.hrestent ceux du Visual Studio 2008 et, malgré le fait qu'on utilise un compilateur très récent, on se retrouve avc un support C++11 moindre que celui qu'on a avec un Visual Studio récent). J'ai donc redéfininullptràNULLquand je suis sous Windows XP. - Les dérivations multiples impliquant
WithDrawableont posé problème (au link). Après beaucoup d'essais, j'ai résolu ça en intervertissant l'ordre des classes de base pour les classes concernées (WithDrawabledoit être la dernière classe - voir p.expl.ElementouInteractionSet). J'ai pas compris mais ça marche. - J'ai dû exporter toutes les classes de
mtDrawables. Je ne me souviens plus exactement pourquoi, mais quoi qu'il en soit, ça ne mange pas de pain.
J'essayerai de vérifier de temps en temps que le code reste compilable sous XP, le temps que Vista disparaisse et que Arcelor migre vers Win7.
— Romain BOMAN 2015/01/06 07:45
