Maison >développement back-end >Golang >La liaison dynamique de Go 1.5 peut-elle améliorer les binaires existants avec du code externe ?

La liaison dynamique de Go 1.5 peut-elle améliorer les binaires existants avec du code externe ?

DDD
DDDoriginal
2024-12-01 19:12:11762parcourir

Can Go 1.5's Dynamic Linking Enhance Existing Binaries with External Code?

Déverrouiller la liaison dynamique à partir d'un binaire Go

L'amélioration d'un binaire Go avec du code personnalisé via la liaison dynamique élimine le besoin de reconstruire l'intégralité du binaire. Ce guide explore la possibilité de réaliser cet exploit, en tirant parti des dernières avancées de Go 1.5.

Le défi : compiler et lier du code externe

L'objectif est de compiler un fichier Go externe à partir d'un binaire Go existant et liez-le à l'environnement d'exécution du binaire. Cela permet l'intégration transparente de nouvelles fonctionnalités sans recompiler l'intégralité de l'exécutable.

La réponse : la prise en charge des liens dynamiques de Go 1.5

La fonctionnalité tant attendue de partage les bibliothèques sont enfin arrivées avec Go 1.5. Cette version révolutionnaire permet aux développeurs de créer des bibliothèques partagées Go qui peuvent être utilisées par les programmes Go.

Étape 1 : Créer une bibliothèque standard en tant que bibliothèques partagées

Pour créer des bibliothèques partagées, utilisez l'indicateur -buildmode=shared lors de l'installation. Par exemple, pour créer la bibliothèque standard en tant que bibliothèques partagées, entrez :

$ go install -buildmode=shared std

Étape 2 : Créer un programme lié aux bibliothèques partagées

Créez un "Bonjour, world" qui établit des liens avec les bibliothèques partagées de la bibliothèque standard :

$ go build -linkshared hello.go

Étape 3 : Inspection le binaire de la bibliothèque partagée

Une fois la construction terminée, exécutez ls -l sur le binaire pour vérifier les modifications :

$ ls -l hello
-rwxr-xr-x 1 adg adg 13926 May 26 02:13 hello

Conclusion

Avec l'introduction des liens dynamiques dans Go 1.5, le rêve d'intégrer de manière transparente du code Go externe dans les binaires existants devient une réalité. Cela ouvre un large éventail de possibilités pour le développement de logiciels modulaires et la réutilisation de code.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn