Как сделать-теги netgo по умолчанию для go?


Чтобы скомпилировать мой пакет golang так, чтобы он производил статически связанный исполняемый файл, я должен сказать:

go install -tags netgo

Кроме того, теперь я понимаю, что в системе без gcc я должен:

go get -tags netgo github.com/mypackage/...
go test -tags netgo ./...

Если вы печатаете это все время, это не так приятно. У меня есть псевдонимы, настроенные так, чтобы я мог печатать меньше, но есть ли "более приятный" или "правильный" способ установить-теги netgo как своего рода дефолт? В идеале, как часть самого пакета, так что незнакомец, пытающийся работать с моим пакетом, не пропустит-теги нетго.

Edit: я также хочу иметь возможность сказать:

go install -tags netgo -ldflags '-linkmode external -extldflags -static -w'

Т. е. ссылка на код C, который может быть статически скомпилирован. Поэтому работа на машине без GCC менее важна для меня, чем создание статически связанного исполняемого файла. Я просто задаюсь вопросом, есть ли способ сделать последнее, не говоря-теги netgo все время.

1 4

1 ответ:

Вы можете полностью отключить cgo, установив CGO_ENABLED=0, что предотвратит привязку сетевого пакета к определителю хоста.