Binärpakete ohne Quellcode in Go verwenden
Softwarebibliotheken ohne Quellcode zu verteilen ist eine häufige Anforderung, kann aber mit Go erreicht werden ? Diese Frage hat viele Go-Entwickler verwirrt und zur Erforschung verschiedener Ansätze geführt.
Ein Versuch besteht darin, Dummy-Quelldateien mit Zeitstempeln zu erstellen, die älter als die Binärpakete sind. Auch wenn dieser Ansatz machbar erscheint, stellt er ein potenzielles Problem dar, wenn die Dummy-Quelldateien versehentlich aktualisiert werden, was zu einem ungültigen Paket führt.
Verteilen von Quellen eine Notwendigkeit?
Für eine erfolgreiche Kompilierung benötigt der Go-Compiler ausdrücklich sowohl Quellcode als auch Binärpakete. Das Fehlen einer direkten Bestimmung zur Verwendung von .a-Dateien allein wirft die Frage auf, warum Go diese Funktionalität nicht bereitstellt.
Die Rolle des Go-Tools
The go Das Tool ist zwar praktisch, aber kein Ersatz für den Go-Compiler, Linker oder die Sprache selbst. Das Tool erleichtert den Prozess des Erstellens, Testens und Verpackens von Go-Code, verlässt sich aber letztendlich auf die zugrunde liegenden Komponenten, um die schwere Arbeit zu leisten.
Pragmatische Lösung
Trotzdem Für die Herausforderungen gibt es eine praktische Lösung, die es Ihnen ermöglicht, Binärpakete ohne den gesamten Quellcode zu verteilen:
Verteilen Sie die .a-Dateien zusammen mit Dummy-Quelldateien, deren Zeitstempel sind älter als die der Binärpakete. Stellen Sie sicher, dass alle relevanten Dateien an den erwarteten Speicherorten abgelegt werden und Ihre Benutzer Ihr Paket dann über die Befehlszeile direkt mit dem Compiler erstellen und verwenden können.
Hinweis zu Dummy-Quellen
Neuere Versionen des Go-Tools haben ihre Erkennungsfunktionen verbessert und erfordern alle Dateien mit den richtigen Dateinamen und älteren Zeitstempeln im src-Ordner, auch wenn sie leer sind. Dadurch entfällt die Notwendigkeit einer Zeitstempelverwaltung, was diese Lösung einfacher macht.
Das obige ist der detaillierte Inhalt vonKönnen Go-Binärpakete ohne Quellcode verteilt werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!