8
votes

Convertir .dll à .so

Quelqu'un d'entre vous peut-il m'aider à convertir un fichier DLL Windows dans un fichier .so.


3 commentaires

Hélas, pas même Bill Gates peut vous aider ....


Qu'est-ce qui est spécial dans ce que même Bill Gates ne peut pas le faire?


J'ai mis à jour ma réponse avec plus de liens qui peuvent vous aider à démarrer. Sans plus d'informations de votre part, c'est le meilleur que vous puissiez espérer.


3 Réponses :


0
votes

Vous devez recompiler à nouveau dans un fichier .so.


0 commentaires

11
votes

Vous pouvez essayer de ré-compiler le code source à la DLL à un objet partagé. Ce peut vous aider à démarrer, après avoir veillé à ce que le code soit effectivement portable.

EDIT:

voici Encore un autre lien qui peut vous aider à vous guider Grâce au processus de création d'une bibliothèque partagée à l'aide de GCC et d'autres parties de la chaîne d'outils GNU. Ce lien vous aidera découvrir des pièges que d'autres personnes avaient pour entreprendre un projet similaire à celui-ci.

Il n'y a que tellement d'aide qui peut être fournie pour une tâche aussi spécifique, notamment avec tant d'inconnues. Si vous choisissez de fournir plus d'informations dans votre question, veuillez laisser un commentaire.

nb : Je tire ces liens hors de Google.


7 commentaires

Pourriez-vous s'il vous plaît dites-moi la procédure complète à partir du rayure


Cela fait partie du travail d'un programmeur de pouvoir établir des informations qu'ils doivent produire une procédure aussi complète. Tinkertim S LINK a tout spécifique au système de construction juste pour vous déjà - si vous avez toujours des problèmes, votre code est probablement inutile, et c'est un problème que vous pouvez résoudre.


@Sachin chourasiya, je ne peux pas éventuellement vous donner des instructions détaillées, étape par étape sur la manière de porter une bibliothèque Windows que je n'ai jamais vue à Linux. C'est votre projet, pas le mien :)


Tinkertim, veuillez commencer par votre instruction étape par étape.


@Sachin Chourasiya: Vous devez faire du travail ... De plus, vous devez spécifier quelle plate-forme vous souhaitez construire le .so. Afaik, vous ne pouvez pas utiliser de fichiers .SO sur Windows (et des fichiers .dll n'apparaissent que sur Windows), vous devez donc migrer le code entre les systèmes d'exploitation. C'est apte à être délicat, de manière appropriée si la bibliothèque utilise des API Win32 et non des API conformes à POSIX.


Je veux juste migrer de Windows vers UNIX.


@Sachin Chourasiya: Vous devrez étudier la bibliothèque existante pour vous assurer qu'elle sera 1 - Compiler sous Linux et 2 - Travail comme prévu. Je ne sais pas quelle bibliothèque vous référencez, quand il a été écrit ou ce qu'il fait. Plus important encore, je ne sais pas comment il a été écrit. At-il un maquillage? Le maquillage semble-t-il être portable (ou au moins, est un matrice amical de GCC inclus?) Il y a de loin, loin, beaucoup trop d'inconnues pour que quiconque soit plus spécifique que ce que nous avons déjà fait. Comme l'a dit Jonathan Leffler, vous avez un peu de travail devant vous.



1
votes

Si vous n'avez pas la source ou que vous ne pouvez pas recompiler, vous pourrez peut-être exécuter le code sous Vin .


1 commentaires

Vous ne pouvez pas courir 'juste une dll' sous le vin. Il semble intéressé à porter juste une bibliothèque. Je commence à soupçonner qu'il n'a pas accès à son code source.