2016-04-20 3 views
0

В настоящее время я разрабатываю службу, которая может быть создана как служба Windows или запускаться как исполняемый файл OSX/linux.Настройка GOOS с go go

Я использую строить теги на окнах файлов, в том числе с основным методом

// +build windows 

А на другой файл, содержащий основной метод

// +build !windows 

Когда я исполняю go run *.go на mac, я получаю следующее сообщение об ошибке

mainDOS.go:10:2: no buildable Go source files in /Users/michaelbrandenburg/Documents/git-repo/goCode/src/golang.org/x/sys/windows/svc 
windowsService.go:15:2: no buildable Go source files in /Users/michaelbrandenburg/Documents/git-repo/goCode/src/golang.org/x/sys/windows/svc/debug 
install.go:14:2: no buildable Go source files in /Users/michaelbrandenburg/Documents/git-repo/goCode/src/golang.org/x/sys/windows/svc/eventlog 
install.go:15:2: no buildable Go source files in /Users/michaelbrandenburg/Documents/git-repo/goCode/src/golang.org/x/sys/windows/svc/mgr 

Есть ли способ запустить go run и настроить архитектуру, которую я хочу запустить? Я могу создавать исполняемые файлы без проблем.

+3

Нет смысла устанавливать GOOS с 'go run', потому что' go run' предназначен для немедленного выполнения на ОС хоста. – JimB

+0

Или, может быть, вы смущены о «ограничениях сборки»? 'go run' не следует ограничениям сборки, потому что вы уже явно указываете файлы для сборки в качестве аргументов. Вы не должны использовать 'go run' для более простого тестирования, и у вас есть' go install' и 'go build' для работы с полными пакетами. – JimB

ответ

1

GOOS=darwin go run *.go установит env для Mac OSX. Хотя, как сказал JimB, нет особого смысла. Выполнение GOOS=darwin go build *.go - хороший способ перекрестного компиляции, но

+0

Использование этого для создания изображения докеров, и оно отлично работает. Я получаю: процесс пользователя exec вызвал ошибку «exec format» при попытке запустить мое построенное изображение докеров. Среды не совпадали, поэтому, похоже, это работало для создания двоичного файла Golang для среды linux. благодаря – bi4nchi

Смежные вопросы