Maison > développement back-end > Golang > Comment utiliser les binaires dans Go ?

Comment utiliser les binaires dans Go ?

WBOY
Libérer: 2023-05-11 15:51:36
original
2783 Les gens l'ont consulté

#🎜🎜Le langage #Go est un langage compilé fortement typé, typé statiquement. Il est largement utilisé dans la programmation réseau, le développement de serveurs, la programmation système et d'autres domaines. L'utilisation de fichiers binaires en langage Go est une tâche très courante. Cet article détaille comment utiliser les fichiers binaires en Go.

1. Qu'est-ce qu'un fichier binaire ?

Dans un ordinateur, un fichier binaire est un fichier que la machine peut exécuter directement. Il contient tout le code du programme et les données nécessaires au moment de l'exécution. Les binaires sont généralement produits par le processus d'un compilateur consistant à compiler le code source en code exécutable par machine. Dans les systèmes Unix/Linux, le suffixe des fichiers binaires est généralement « .bin » ou « .elf ».

Il existe deux principaux types de fichiers binaires impliqués dans le langage Go : les fichiers exécutables et les fichiers de bibliothèque. Un fichier exécutable est un fichier binaire pouvant être directement exécuté. Les fichiers exécutables courants incluent le fichier exécutable du programme Go (suffixe ".exe" ou pas de suffixe), le fichier exécutable du programme C (suffixe ".out"), etc. attendez. Un fichier bibliothèque est un fichier binaire contenant des fonctions et des données pouvant être liées à d'autres programmes. Le suffixe des fichiers de bibliothèque est généralement « .a » (bibliothèque statique) ou « .so » (bibliothèque dynamique).

2. Générer un fichier exécutable

    Écrire le code source
Tout d'abord, nous devons écrire le code source du langage Go , comme le programme simple suivant, qui génère "Hello, world!" :

package main

import "fmt"

func main() {
    fmt.Println("Hello, world!")
}
Copier après la connexion

Enregistrez le code ci-dessus dans le fichier "main.go".

    Compiler le fichier exécutable
Utilisez le compilateur du langage Go pour compiler le code source et générer un fichier exécutable. Exécutez la commande suivante :

go build main.go
Copier après la connexion
Copier après la connexion

Après exécution, un fichier exécutable nommé "main" sera généré. Nous pouvons exécuter ce fichier dans la fenêtre de ligne de commande :

./main
Copier après la connexion

Après l'exécution, "Hello, world!" sera affiché sur le terminal.

    Cross-compilation
Si nous devons exécuter notre programme sur différents systèmes d'exploitation ou architectures, nous pouvons utiliser la compilation croisée pour générer différents Fichiers exécutables sur la plateforme. Par exemple, on peut compiler un fichier binaire sur Mac pouvant fonctionner sous Linux :

GOOS=linux GOARCH=amd64 go build main.go
Copier après la connexion

Après l'exécution, un fichier exécutable nommé "main" sera généré dans le répertoire courant, qui pourra être exécuté sous Linux continuer à courir.

3. Générer des fichiers de bibliothèque

    Écrire le code source
Tout d'abord, nous devons écrire le langage Go code source, Par exemple, le fichier de bibliothèque simple suivant définit une fonction Add, qui ajoute deux entiers et renvoie :

package mylib

func Add(a, b int) int {
    return a + b
}
Copier après la connexion

Enregistrez le code ci-dessus dans le fichier "mylib.go".

    Compiler le fichier de bibliothèque
Utilisez le compilateur du langage Go pour compiler le code source et générer le fichier de bibliothèque. Exécutez la commande suivante :

go build -o mylib.a -buildmode=c-archive mylib.go
Copier après la connexion

Après exécution, un fichier de bibliothèque statique nommé "mylib.a" sera généré dans le répertoire courant.

    Utiliser les fichiers de bibliothèque
Il est très simple d'utiliser les fichiers de bibliothèque en langage Go. Il vous suffit d'importer le fichier de bibliothèque dans le fichier de code source qui doit utiliser la fonction de bibliothèque. Par exemple, dans le programme suivant, nous importons le fichier de bibliothèque « mylib » et y appelons la fonction Add :

package main

import (
    "fmt"
    "mylib"
)

func main() {
    sum := mylib.Add(1, 2)
    fmt.Println(sum)
}
Copier après la connexion

Exécutons la commande suivante pour compiler le programme :

go build main.go
Copier après la connexion
Copier après la connexion
#🎜🎜 # Après l'exécution, "3" sera affiché sur le terminal.

4. Lecture de fichiers binaires

Le langage Go fournit des API puissantes pour lire des fichiers binaires, telles que la fonction os.Open, la fonction io.ReadFull, etc. Ces API nous permettent de lire les données de fichiers binaires et de les convertir en variables en langage Go.

Ce qui suit est un exemple, qui ouvre un fichier binaire nommé "test.bin" et y lit un entier :

package main

import (
    "encoding/binary"
    "fmt"
    "os"
)

func main() {
    // 打开二进制文件
    file, err := os.Open("test.bin")
    if err != nil {
        fmt.Println(err)
        return
    }
    defer file.Close()

    // 读取一个int32类型的整数
    var num int32
    err = binary.Read(file, binary.LittleEndian, &num)
    if err != nil {
        fmt.Println(err)
        return
    }

    fmt.Println("Num is", num)
}
Copier après la connexion

Exécutez le code ci-dessus, il lira un entier à partir d'un fichier binaire nommé "test.bin" et imprimez-le sur le terminal.

5. Résumé

Utiliser des fichiers binaires est l'une des tâches de base du langage Go. Dans cet article, nous avons expliqué comment générer des exécutables et des bibliothèques dans Go, et comment utiliser les bibliothèques. En parallèle, nous avons également appris à lire les données des fichiers binaires. Ces compétences sont toutes nécessaires pour rédiger des applications vraiment utiles. Nous pouvons étendre et personnaliser davantage ces fonctionnalités grâce à des concepts avancés du langage Go tels que les adresses et les tuyaux. Par conséquent, il est très utile de maîtriser les compétences nécessaires pour travailler avec des binaires en langage Go.

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal