Heim >Backend-Entwicklung >Golang >Erstellen Sie Test- oder kommerzielle Binärdateien und ändern Sie das Laufzeitverhalten entsprechend
Der PHP-Editor zeigt Ihnen, wie Sie Test- oder kommerzielle Binärdateien erstellen und das Laufzeitverhalten entsprechend ändern. Ob es darum geht, das Urheberrecht der Software zu schützen oder eine Testversion bereitzustellen, die Erstellung von Binärdateien ist ein wichtiger Schritt. Durch die Änderung des Laufzeitverhaltens können einige funktionale Einschränkungen oder Kontrollen erreicht werden. In diesem Artikel werden die grundlegenden Schritte zum Erstellen einer Binärdatei erläutert und einige Beispiele für häufige Änderungen des Laufzeitverhaltens aufgeführt. Im Anschluss an diesen Artikel beherrschen Sie die Techniken zum Erstellen von Binärdateien, um Ihren Softwareprodukten mehr Wert und Schutz zu verleihen.
Ich habe dies Makefile
, um eine Binärdatei für Testversionen und kommerzielle Nutzung zu erstellen:
BINARY_NAME=App.exe trial: ENV_BUILD=trial go build -o ${BINARY_NAME} comme: ENV_BUILD=comme go build -o ${BINARY_NAME} clean: go clean rm ${BINARY_NAME} prepare: go mod tidy
In meinem Quellcode habe ich eine Behauptung Testversion und Kommerziellbegrenzter Quellcode:
<code>package permit import "fmt" func Trial() (bool, error) { fmt.Println("You are using a limited trial release.") // ... // Assert limitations... } func Comme() (bool, error) { fmt.Println("You are using the unlimited commercial release.") // ... } </code>
Ich habe vor, die beiden oben genannten Funktionen zur Laufzeit wie folgt aufzurufen:
<code>package main import "permit" // ... var builtTrial bool // TODO: Best way to detect if the built has been trial var builtComme bool // TODO: Best way to detect if the built has been commercial if builtTrial { permitted, err := permit.Trial() } else if builtComme { permitted, err := permit.Comme() } // ... </code>
Was ist die beste Vorgehensweise, um zur Laufzeit zu erkennen, ob eine Binärdatei als Testversion oder Kommerziell erstellt wurde? Ich habe das Gefühl, dass mir die dafür verfügbaren Standardtools nicht bekannt sind.
Letztendlich habe ich Go verwendet, um die Tag-Methode zu erstellen:
Datei permitbuild_Trial.go
:
<code>//go:build trial package permit var buildType = "trial" </code>
Datei permitbuild_commercial.go
:
<code>//go:build commercial package permit var buildType = "commercial" </code>
Dann kann ich Aussagen wie diese haben:
<code>package permit // ... if buildType == "trial" { fmt.Println("You are using a limited trial release.") return nil } else if buildType == "commercial" { fmt.Println("You are using the unlimited commercial release.") return nil } else { return fmt.Errorf("build type is neither trial nor commercial.") } </code>
Das Finale Makefile
ist:
BINARY_NAME=App.exe trial: go build -tags trial -o ${BINARY_NAME} commercial: go build -tags commercial -o ${BINARY_NAME} clean: go clean rm ${BINARY_NAME} prepare: go mod tidy
Das obige ist der detaillierte Inhalt vonErstellen Sie Test- oder kommerzielle Binärdateien und ändern Sie das Laufzeitverhalten entsprechend. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!