11
votes

MINGW 3.4.5 manquant dlfcn.h?

Est-il possible que mon installation MINGW 3.4.5 soit défectueuse? ou est-ce fourni sur une autre bibliothèque flottante?

Si vous vous demandez, dlfcn.h est l'endroit où Dlopen et DLClose sont définis, il devrait donc être assez standard


2 commentaires

Drôle, j'avais aussi ce problème récemment.


MINGW n'est pas conforme à POSIX, par design. Il est censé être une boîte à outils Windows natif. Utilisez Cygwin pour les outils conformes à Posix pour Win32.


6 Réponses :


7
votes

Ce n'est pas dans mon installation Mingw 3.4.5, alors je doute que votre installation soit défectueuse. Je suppose que les responsables MINGW attendent que vous utilisiez les fonctions Win32 prenant en charge le chargement dynamique ( LoadLibrary () , getProcAddress () , etc.).


0 commentaires

3
votes

MINGW est une implanation d'un compilateur pour Windows (port GCC) implémentant l'API Win32. Les fonctions dans dlfcn.h (Dlopen / DlSym et. Al..) Sont POSIX, et non Windows, aucune implémentation Win32 n'existe. Il peut y avoir une enveloppe dans des msys ou de Cygwin, mais je crains que les différences entre la DLL Windows et les mécanismes de bibliothèque partagées elfe signifient que vous aurez simplement besoin de porter dans les API Windows.


0 commentaires

11
votes

DLFCN-Win32 est un wrapper pour DLFCN autour des fonctions Win32 DLL


0 commentaires

2
votes

J'ai eu ce problème et après avoir installé DLFCN-Win32-R19.TAR.BZ2 sous Windows sous Cygwin Shell, le problème a été résolu.

HTTPS: / /code.google.com/p/dlfcn-win32/downloads/detail?Name=DLFCN-WIN32-R19.TAR.BZ2

J'espère que cela aidera les autres gars.


0 commentaires

1
votes

Je sais que c'est une ancienne question, mais néanmoins toujours pertinente aujourd'hui, quelle que soit la version de GCC de Mingw.org, qui peut être utilisée.

Ceux qui ont observé que Mingw est vraiment destiné à être utilisé avec les API Win32 natives, basées sur LoadLibrary () et GetProcAddress (), plutôt que les API spécifiques à POSIX déclaré dans DLFCN.H, sont complètement correctes; Ainsi, Mingw.org n'a fourni traditionnellement aucune mise en œuvre des fonctions API DLFCN.H.

Toutefois, à partir de Mingwrt-3.21, je devais mettre en œuvre la fonctionnalité Mingw qui s'apparente à l'utilisation de POSIX de DLSYM () sur l'espace d'adresses RTLD_DEFAULT. Par conséquent, à partir de cette version du MINGW Runtime, j'ai l'intention de maintenir une implémentation conforme des API POSIX DLFCN.H, en tant que wrapper autour des API de LoadLibrary (), GetProcAddress () et PSAPI.DLL Native Win32.


1 commentaires

Veuillez noter que la mise en œuvre du MINGW de DLFCN est Non dérivée de DLFCN-Win32 (mentionnée dans une autre réponse, et se trouve maintenant sur GitHub). C'est une nouvelle mise en œuvre, écrite à partir de zéro, pour offrir une conformité plus complète de POSIX de POSIX (quel MINGW avait besoin); Il est également distribué sous la licence MIT plus permissive, plutôt que GPL-2.



0
votes

dlfcn.h: aucun fichier ou répertoire de ce type

Pour résoudre ce problème, je devais ajouter au fichier .pro: xxx


0 commentaires