-
Assimp sous Windows
Bonjour,
Dans le cadre de mon application, je souhaite pouvoir importer et afficher des scènes 3D. J'ai décidé pour cela d'utiliser Assimp qui semble justement conçu pour cela.
J'ai donc téléchargé les sources, créé le Makefile avec cmake, puis construit la libraire avec mingw32-make.
Tout se passe presque bien, vu qu'il a des erreurs, mais seulement pour les outils annexes, dont je ne me sers pas, et le fichier .dll est bien généré.
Pour le développement de mon application, j'utilise Qt 4.8.1 avec MinGW sous windows 7 (32 bits).
Lorsque j'utilise enfin la librairie, mon programme plante au début de l'exécution avec le message :
" Durring startup program exited with code 0xc0000135 "
Ce message n'apparait pas lorsque je me limite à faire un #include <assimp/Importer> ou à déclarer un Assimp::Importer* m_importer. Il n'apparait que si le code contient une instruction pour instancier l'importer. Et il survient au tout début du lancement de l'application, avant même d'atteindre le premier point d'arrêt au tout début de mon code.
J'ai essayé de reconstruire la libraire, avec les mêmes sources ou des sources différentes, mais rien à faire.
Un sauveur s'il vous plait, j'ai déjà perdu deux jours là-dessus.
-
Juste une idée
J'ai eu le même genre d'erreur avec des versions de DLL incompatibles.
Je ne sais pas si cela peut aider mais il est possible que la bonne version d'une DLL ne soit pas présente.
Pour vérifier l'exécution d'un programme Windows ave les DLL, Microsoft a un outil de profilage gratuit :Depends
-
Cela me semblerait un peu étrange.
Si j'ai pris le temps (et galéré un bon moment) de construire et compiler la librairie avec MinGW (que j'utilise pour mon application), c'est justement pour éviter les problèmes d'incompatibilité.
Précision supplémentaire : Pour lier la librairie à mon projet, j'ajoute les lignes suivantes dans mon fichier .pro :
INCLUDEPATH += "C:\\Assimp\\include"
LIBS += "C:\\Assimp\\bin\\libassimp.dll"
Aurais-je peut-être oublié quelque chose à ce niveau ?
Lorsque j'ai associé les librairies Eigen et Qwt à mon projet, j'ai simplement ajouté leur includepath, et le chemin d'accès à leur dll dans la variable d'environnement path. Mais pour une raison que je ne m'explique pas, cela ne suffit pas pour Assimp, et il a besoin de la ligne LIBS pour compiler (sans quoi il me sort des "Undefined Reference"). Et même lorsqu'il compile, j'ai cette erreur de startup.