Maison >développement back-end >Golang >Go Build supprimer les informations

Go Build supprimer les informations

王林
王林avant
2024-02-10 15:00:111245parcourir

Go Build删除信息

Éditeur php Baicao Go Build est un puissant outil de suppression d'informations, qui peut aider les utilisateurs à supprimer toutes sortes d'informations rapidement et efficacement. Qu'il s'agisse de supprimer des informations inutiles, de nettoyer le spam, d'effacer la vie privée ou d'effacer l'historique de navigation, Go Build peut le gérer facilement. Grâce à son algorithme intelligent, les utilisateurs peuvent effectuer la tâche de suppression d’informations en quelques étapes simples. Go Build est non seulement simple à utiliser, mais également sûr et fiable, protégeant la vie privée des utilisateurs contre toute violation. Qu'il s'agisse d'un utilisateur individuel ou d'un utilisateur d'entreprise, Go Build est un outil indispensable qui rend la suppression des informations plus pratique et efficace.

Contenu de la question

Je peux déjà utiliser Go Build pour supprimer les informations du répertoire actuel du projet, et je peux également supprimer les informations Gopath, comme suit, je ne peux en supprimer qu'une individuellement maintenant

go build -gcflags“all=-trimpath=${GOPATH}”-asmflags“all=-trimpath=${GOPATH}”

Mais je ne sais pas comment les supprimer en même temps, je ne sais pas comment les combiner

Sous Windows, j'essaie ceci

go build -gcflags“all=-trimpath=%CD%” -asmflags“all=-trimpath=%CD%” -gcflags“all=-trimpath=%GOPATH%” -asmflags“all=-trimpath=%” GOPATH%"

Ne fonctionne pas

Résultat final

@ZekeLu, la réponse est correcte.

Je veux expliquer ce qui s'est passé, je voulais à l'origine supprimer les informations GOROOT, mais j'ai écrit GOPATH, donc j'ai pensé que la deuxième réponse de @ZekeLu était fausse, maintenant je l'ai modifiée et testée, pas de problème, les deux réponses Pour p>

solution de contournement

essayez cette commande :

go build -trimpath

Voici la documentation du -trimpath flag de la commande go :

-Chemin de coupe

Supprimez tous les chemins du système de fichiers de l'exécutable généré. Nom de fichier enregistré au lieu du chemin absolu du système de fichiers démarrera le chemin du module @ version (lors de l'utilisation de modules), Ou un chemin d'importation normal (lors de l'utilisation de la bibliothèque standard ou de gopath).

Si vous souhaitez simplement supprimer certains préfixes, vous pouvez faire ceci :

go build -gcflags "all=-trimpath=%cd%;%gopath%" -asmflags "all=-trimpath=%cd%;%gopath%"
La

commandecompile et la commande asm appellent objabi.applyrewrites pour élaguer les chemins. Selon l'implémentation.applyrewritesobjabi.applyrewrites 来修剪路径。根据 objabi 的实现.applyrewritesrewrites d'objabi, le paramètre rewrites est une réécriture séparée par ; Écrivez une liste.

// ApplyRewrites returns the filename for file in the given directory,
// as rewritten by the rewrites argument.
//
// The rewrites argument is a ;-separated list of rewrites.
// Each rewrite is of the form "prefix" or "prefix=>replace",
// where prefix must match a leading sequence of path elements
// and is either removed entirely or replaced by the replacement.
func ApplyRewrites(file, rewrites string) (string, bool) {
    start := 0
    for i := 0; i <= len(rewrites); i++ {
        if i == len(rewrites) || rewrites[i] == ';' {
            if new, ok := applyRewrite(file, rewrites[start:i]); ok {
                return new, true
            }
            start = i + 1
        }
    }

    return file, false
}

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer