J'ai téléchargé une libraire qui s'appelle clucene (version du 12/11/2009). C'est un portage en C++ d'une librairie java permettant de faire des recherches plein texte.
Elle est fournie sous forme de code source uniquement. Il faut utiliser un outil appelé cmake pour générer le code nécessaire pour la plateforme et le compilateur cibles.
Il faut aussi se procurer par ailleurs zlib1.dll.
J'ai réussi vaille que vaille à générer et compiler le tout pour Visual 2005.
En mode debug je n'ai pas eu trop de mal.
En mode release ça s'est corsé, NDEBUG et _DEBUG étant définis simultanément dans les directives du preprocesseur ().
Bref, après correction j'ai réussi à compiler les programmes de test. A l'exécution en mode debug ça fonctionne, en mode release ça plante.
J'ai créé un petit projet utilisant la bibliothèque précompilée, même problème: ok en debug, pas ok en release.
Dans les deux cas, la librairie est compilée sous forme de DLL (il y en a 2) et utilise le CRT aussi en mode DLL. J'ai donc fait un essai en recompilant le tout sous forme de librairie statique.
Et là, miracle, ça fonctionne dans tous les cas.
Y'a-t-il des cas d'école classiques où les DLL en release plante ?
Intuitivement, en essayant de débugger le code release (il semble qu'il suffit d'ajouter la génération des infos debug lors de la compil) j'ai l'impression que les objets globaux statics ne sont pas initialisés dans la DLL? Serait-ce possible ?
Merci.
Partager