Как создать пакет go для текущей ОС, но вывести его в указанную папку? - PullRequest
0 голосов
/ 18 декабря 2018

Когда я запускаю go build main.go, компилятор выведет двоичный файл для текущей ОС в той же папке.В этом случае я получу main.exe или main для OSX или Linux.

Если я укажу вывод, он будет построен без расширения файла на компьютерах с Windows.

go build -o ./bin/myproject main.go

Из-за отсутствия расширения файла вы не можете запустить выведенный двоичный файл в Windows, не переименовав его.

Как создать проект go, указав выходную папку и получив двоичный файл с соответствующим именем дляОС на другой стороне?

1 Ответ

0 голосов
/ 18 декабря 2018

Вы можете обрабатывать логику расширения .exe в скрипте.Что-то вроде:

#!/usr/bin/env bash

output="./bin/myproject"


if [ -n "$GOOS" ] && [ "$GOOS" = "windows" ]; then
    output+='.exe'
fi

go build -o $output main.go

Если вы называете это build.sh.Вы можете вызвать его:

bash build.sh # for using the `GOOS` defined in your environment
GOOS=windows bash build.sh # for building windows binaries (with `.exe` extension)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...