DLL-s utilisant C ++ sur Linux
-
02-07-2019 - |
Question
J'ai essayé de trouver comment créer des DLL sur Linux sous google, mais j'ai obtenu des informations très confuses.
Est-il possible d'écrire des bibliothèques de liens dynamiques sur Linux? Sinon, existe-t-il un autre moyen d'appeler du code dans un autre module à partir de plusieurs programmes en cours d'exécution?
La solution
C'est parce que DLL est un terme Windows. Sous Linux, elles sont appelées bibliothèques partagées.
http: //www.linux. org / docs / ldp / howto / Program-Library-HOWTO / shared-libraries.html
Autres conseils
Comme Sklivvz a été utilisé, le terme que vous recherchez après linux est objet partagé. Celles-ci se voient attribuer l'extension de fichier .so
.
En utilisant gcc, vous pouvez créer un .so
à l'aide de l'option -shared
.
par exemple.
gcc -shared -o libfoo.so foo.c
Si vous nommez votre objet partagé lib * .so, vous pouvez le compiler en utilisant l’option -l
de votre éditeur de liens. Notez que la commande " lib " est inféré dans cette circonstance.
c'est-à-dire
ld -o a.out -lfoo someobject.o
Vous pouvez également charger des fichiers .so
au moment de l'exécution, exactement comme avec les .dll
, en utilisant dlopen () et dlsym ().
C’est un lot si vous commencez à peine à démarrer, mais vous devrez faire référence à Ulrich Drepper & # 8217; s & # 8220; Comment écrire des bibliothèques partagées . & # 8221;
Je suppose que vous voulez des fichiers .SO à la place des fichiers DLL, c'est-à-dire un objet partagé, et non pas StackOverflow :).