Salutations, Je suis confronté à une situation compliquée à propos de l'utilisation d'une bibliothèque statique sous Windows. La bibliothèque statique est construite par une version spécifique de mingw qui est fournie avec Eiffel studio. Comme Eiffel studio utilise mingw pour créer sa sortie en tant que lib statique, je n'ai aucun contrôle sur cette configuration. Si j'essaie d'utiliser cette bibliothèque statique avec Eclipse CDT qui utilise une version plus récente de mingw, je ne peux pas compiler mon projet. C'est parce que je dois fournir des options -l à diverses librairies comme winsock, et cela semble dû à la différence entre les versions de compilateurs générant une bibliothèque statique et mon code, cela ne fonctionne pas.comment puis-je utiliser la construction de la bibliothèque statique par une version différente de mingw?
Si je force Eclipse à utiliser le même répertoire de MINGW fourni avec Eiffel studio, celui qui a compilé la lib statique, alors je peux compiler mon code (il y a cependant d'autres problèmes ici) Je ne veux pas contraindre mon développement C++ juste parce qu'une bibliothèque statique est construite avec une version particulière de mingw.
Alors, comment puis-je utiliser cette bibliothèque statique à partir de ma propre version mingw? C'est windows xp btw ..
Cordialement Seref
Merci. J'ai fini par compiler avec la nouvelle version de mingw, ce qui m'a sauvé de beaucoup de problèmes. Je suis curieux cependant, serait-il possible d'envelopper une bibliothèque statique dans une DLL, pour surmonter les problèmes de version du compilateur? Je veux dire un dll compilé avec l'ancienne version, enveloppant la bibliothèque statique et ses dépendances? – mahonya
Cela dépend du problème. Habituellement, vous n'avez pas de problèmes pour utiliser une DLL (quel que soit le compilateur utilisé pour la construire) ** si ** vous résolvez les symboles avec LoadLibrary et GetProcAddress; mais si vous liez avec la DLL, des problèmes peuvent survenir (et se produiront généralement) en raison du fait que la liaison est un processus spécifique à chaque développement-suite (peut différer même entre les versions). En enveloppant avec l'ancien compilateur et les fonctions d'exportation - si cela est possible !!! - (à résoudre avec GetProcAddress) vous contournez ces problèmes. Bien sûr, le code doit également être modifié pour utiliser GetProcAddress et d'autres. – INS