Erstellen Sie Test- oder kommerzielle Binärdateien und ändern Sie das Laufzeitverhalten entsprechend

王林
Freigeben: 2024-02-09 13:39:08
nach vorne
927 Leute haben es durchsucht

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.

Frageninhalt

Build

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
Nach dem Login kopieren

Quellcode

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

Frage

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.

Workaround

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>
Nach dem Login kopieren

Datei permitbuild_commercial.go:

<code>//go:build commercial

package permit

var buildType = "commercial"
</code>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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
Nach dem Login kopieren

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!

Quelle:stackoverflow.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!