Maison >développement back-end >Golang >Comment puis-je supprimer les chemins de fichiers des directives TEXTE des binaires Go sans utiliser l'outil « strip » ?

Comment puis-je supprimer les chemins de fichiers des directives TEXTE des binaires Go sans utiliser l'outil « strip » ?

DDD
DDDoriginal
2024-11-30 03:06:10115parcourir

How Can I Remove File Paths from Go Binaries' TEXT Directives Without Using the `strip` Tool?

Suppression des chemins de fichiers des directives TEXT dans les binaires Go compilés

Il est nécessaire d'éliminer les informations de chemin de fichier des directives TEXT dans les binaires Go compilés. Cette question recherche une solution qui n'implique pas l'utilisation de l'outil « strip ».

Solution : utilisation des indicateurs -trimpath

L'approche recommandée implique l'utilisation de l'outil « strip ». -trimpath' se marque lors de l'appel de 'go build'. En passant '-trimpath' à '-gcflags' et '-asmflags', les informations de chemin superflues peuvent être supprimées du binaire elf résultant.

Voici un exemple modifié de la commande 'go build' incorporant le '- chemin de trim' flags :

CGO_ENABLED=0 go build -v -a -ldflags="-w -s" \
    -gcflags=-trimpath=/Users/myuser/dev/go/src \
    -asmflags=-trimpath=/Users/myuser/dev/go/src \
    -o ./fooapi spikes/mongoapi.go

Vérification :

Pour confirmer l'efficacité de cette solution, exécutez 'go tool objdump' sur le binaire modifié :

$ go tool objdump ./fooapi
.
.
TEXT main.init(SB) api/spikes/mongoapi.go
mongoapi.go:60  0x12768c0   65488b0c25a0080000  GS MOVQ GS:0x8a0, CX
mongoapi.go:60  0x12768c9   483b6110        CMPQ 0x10(CX), SP
mongoapi.go:60  0x12768cd   7663            JBE 0x1276932
.
.

Notes supplémentaires :

Il est essentiel de noter que même si le Il a été rapporté que l'outil « strip » résout ce problème, mais certains membres de la communauté Go expriment encore des inquiétudes quant à sa fiabilité. Des cas de bugs inconnus et imprévisibles ont été rencontrés, comme documenté dans divers forums et discussions.

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