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!