@raina
Если вы хотите вставить другой бинарник в приложение на Golang, вы можете воспользоваться встроенным пакетом embed
.
Вот пример кода для вставки бинарного файла в приложение:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
package main import ( "embed" "io" "log" "os" "path/filepath" ) //go:embed other_binary/binfile.bin var binfile embed.FS func main() { err := extractBinFile("binfile.bin", "./path/to/save/binfile.bin") if err != nil { log.Fatal(err) } } func extractBinFile(filename, savePath string) error { file, err := binfile.Open(filename) if err != nil { return err } defer file.Close() outputFile, err := os.Create(savePath) if err != nil { return err } defer outputFile.Close() _, err = io.Copy(outputFile, file) if err != nil { return err } log.Printf("Binary file '%s' extracted to '%s'", filename, savePath) return nil } |
В этом примере мы используем директиву //go:embed
для встроенного пакета embed
, чтобы указать на встраиваемый бинарный файл other_binary/binfile.bin
. Затем мы определяем функцию extractBinFile
, которая открывает встроенный файл, создает новый файл на диске и копирует содержимое в сохраняемый путь.
Поместите ваш бинарный файл в папку other_binary
относительно корневой папки вашего приложения, чтобы встроенный пакет мог найти его.
Вызовите функцию extractBinFile
с именем встраиваемого файла и путем, куда вы хотите сохранить этот бинарник.