Question

Question: Est-il possible de compiler un programme sur Linux en utilisant un fichier .dll

Où cela va: Ce sera .dll utilisé pour écrire une extension PHP à un logiciel propriétaire d'un tiers.

Contexte et recherche:

J'ai donné une bibliothèque appelée proprietary.lib. J'étais curieux, comme je l'ai jamais vu l'extension .lib avant, donc je tapais:

file proprietary.lib

La sortie est:

proprietary.lib:  current ar archive

Je l'ai fait des recherches et a constaté que ar est plus ou moins tar (et en fait, je suppose que tar a depuis ar remplacé dans la plupart des environnements * nix).

Lors de l'inspection de la page de manuel ar, je vis la t option, qui affiche une liste de table du contenu de cette archive. Cool. Donc, je tape:

ar t proprietary.lib

Et obtenez:

proprietary.dll
proprietary.dll
... (snip X lines) ...
Était-ce utile?

La solution

Vous pouvez essayer extraire le fichier ar (paquets Debian sont des fichiers ar, FWIW) et exécutez file sur le contenu.

Tu ne vas pas être en mesure d'utiliser les DLL Windows sans traduction. Les seuls fichiers DLL que je connais de ce travail en mode natif sur Linux sont compilés avec Mono.

Si quelqu'un vous a donné une bibliothèque binaire propriétaire à coder contre, vous devez vérifier qu'il est compilé pour l'architecture cible (rien comme essayer d'utiliser binaire h ARM sur un système x86) et qu'il est compilé pour Linux.

Cela étant dit ... bonne chance. Je déteste la programmation contre des bibliothèques tierces où j'ai la documentation et la source.

Autres conseils

Le développement récent peut avoir changé la situation: Il y a un loadlibrary fonction pour Linux disponible, qui le rend possible de charger une DLL Windows et puis appeler des fonctions à l'intérieur.

Ainsi, si le fichier que vous avez .dll est en fait une DLL Windows, vous pouvez trouver un moyen de l'utiliser dans votre logiciel.

Les fichiers .dll sont généralement des bibliothèques de Windows partagées. (Il est également possible que quelqu'un sur Linux a construit une bibliothèque Linux régulière et l'a appelé .dll pour une raison quelconque.)

Il est possible que vous pouvez les utiliser contre un lien vin. Son support était une fois là-bas comme expérimental - je ne sais pas son état actuel.

Oui, nous pouvons utiliser dll avec l'aide de vin. il suffit d'installer wine64 dans linux

sudo apt-get install wine64
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top